から継承するカスタム ボタンにAutolayout制約を適用しようとしていますNSView
。ボタンはかなり複雑で、たとえばラジオ ボタンとして使用できます。ユーザー インターフェイスはdrawRect:
、次のコードの抜粋から推測できるように構成されています。
@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];
}
}
NSView から派生したカスタム テキスト フィールドを正常に構成しました。違いは、テキスト フィールドがaddSubView:
そのユーザー インターフェイス コンポーネントを構成するために使用されることです。
Autolayout 制約を使用してユーザー インターフェイス コンポーネントを配置することはまだ可能でしょうか。現時点では、コンポーネントは表示されません。それらの「サブビュー」を描いているので、うまくいかない気がします。