z オーダーは Cocoa の兄弟 NSView でどのように機能しますか? Apple のドキュメントと API で矛盾する情報源を見つけたので、私は混乱しています。(注: サブビューは明らかにその親ビューの上にレンダリングされます。ここでは兄弟ビューについて明示的に話しています)。
仮説A:「はい、兄弟のzオーダーを定義できますNSViews
」
- では
IB
、ビューを互いの上に配置することができ、それらは常に期待どおりに合成されます。 - Xcode の
Editor
メニューの下に「Send to Back」、「Send Forward」などのボタンがあります。 - には、明確に定義された順序があることを暗示しているように見えるという名前の
NSView
メソッドもあります。- (void)addSubview:(NSView *)aView positioned:(NSWindowOrderingMode)place relativeTo:(NSView *)otherView;
仮説 B : 「まさか、兄弟の z オーダーはNSViews
実行時に定義されていません。機能する場合もあれば、機能しない場合もあります。信用しないでください!」
- Apple のドキュメント (プログラミング ガイドを表示) の状態:
For performance reasons, Cocoa does not enforce clipping among sibling views or guarantee correct invalidation and drawing behavior when sibling views overlap. If you want a view to be drawn in front of another view, you should make the front view a subview (or descendant) of the rear view.
それで、それはどれですか?