NSView を既存の NSView に追加しようとしていますが、奇妙な理由で惨めに失敗しています。私はこれをやっています:
_resizeView = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 10, 10)];
[_resizeView.layer setBorderWidth:2];
[_resizeView.layer setBorderColor:[NSColor purpleColor].CGColor];
[_resizeView.layer setBackgroundColor:[NSColor blackColor].CGColor];
[_resizeView setAutoresizingMask:NSViewNotSizable | NSViewMinXMargin | NSViewMaxYMargin];
[self addSubview:_resizeView];
自動サイズ変更マスクを削除しようとしましたが、それでも機能しませんでした。そこで、NSView から NSButton に変更したところ、魔法のように機能し、ビューが表示されます。
drawRect をオーバーライドしている NSView の独自のサブクラスを作成すると、突然表示されますが、そこに自分で描画したパスのみが表示されます (はい、スーパー drawRect を呼び出しています)。ここで何が起こっているのですか?
基本的に境界線のあるボックスを作成しているだけなので(背景色はテスト用でした)、サブクラスを使い続けることができましたが、これを既存のビューの隅に少し突き出して追加しようとしました、追加するビューのプライマリ レイヤーに対して setMasksToBounds を NO に設定しても、マスクされます。
ここで気が狂う!これが期待どおりに機能しないのはなぜですか?