アプリのメイン ウィンドウに子ウィンドウとして追加するボーダーレス NSWindow があります。特定のモードでは、子ウィンドウが部分的に親ウィンドウのフレームの外側にある可能性があり、完全に囲まれるように前方にズームします。
メイン ウィンドウがフル スクリーンでない場合、子ウィンドウがメイン ウィンドウの外に描画されるのは奇妙に見えます。クリップすることは可能ですか?
いいえ、そうは思いません。OS X では、ウィンドウ (およびNSWindow
s) はウィンドウ サーバーによって合成され、独自のバッファーを持ちます。それらは本質的に OpenGL クワッドであり、描画はテクスチャに行われます (これは単純化されたものですが、基本的にはそれがどのように機能するかです)。
子ウィンドウを使用している理由を質問で説明していません(たとえば、レイヤーに基づくビューや単なるプレーンとは対照的にNSView
)。多くの場合、子ウィンドウの使用をまったく避けることができます。これは、この場合の問題に対する最も簡単な解決策のようです。
(Windows のバックグラウンドを持っている場合、Cocoa は、ほとんどの目的でウィンドウではなくビューを使用することを期待していることに注意してください。典型的なアプリケーションでは、インターフェイス階層の最上位でウィンドウを使用するだけで済みます。)