I am trying to apply Autolayout constraints to a custom button which inherits from NSView
. The button is rather complex and can be used as radio button for example. The user interface is composed in drawRect:
as you can guess from the following code excerpt.
@interface CustomButton : NSView
...
- (void)drawRect:(NSRect)dirtyRect {
// ...
if (self.hasImage) {
// ...
if (self.hasTitle) {
// ...
[image drawInRect:imgRect
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:fraction
alignment:Alignment_LEFT];
} else {
[image drawInRect:imgRect
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:fraction
alignment:Alignment_CENTER];
}
}
if (self.hasTitle) {
// ...
[self.textRenderer drawText:m_title
inRect:textRect
withState:state
controlView:self];
}
}
I successfully configured a custom text field which derives from NSView. The difference is that the text field uses addSubView:
to compose its user interface components.
I wonder if it still possible to use Autolayout constraints to position the user interface components. In the moment no component shows up. I have the feeling that it does not work because I draw those "subviews".