4

アプリのメイン ウィンドウに子ウィンドウとして追加するボーダーレス NSWindow があります。特定のモードでは、子ウィンドウが部分的に親ウィンドウのフレームの外側にある可能性があり、完全に囲まれるように前方にズームします。

メイン ウィンドウがフル スクリーンでない場合、子ウィンドウがメイン ウィンドウの外に描画されるのは奇妙に見えます。クリップすることは可能ですか?

4

1 に答える 1

1

いいえ、そうは思いません。OS X では、ウィンドウ (およびNSWindows) はウィンドウ サーバーによって合成され、独自のバッファーを持ちます。それらは本質的に OpenGL クワッドであり、描画はテクスチャに行われます (これは単純化されたものですが、基本的にはそれがどのように機能するかです)。

子ウィンドウを使用している理由を質問で説明していません(たとえば、レイヤーに基づくビューや単なるプレーンとは対照的にNSView)。多くの場合、子ウィンドウの使用をまったく避けることができます。これは、この場合の問題に対する最も簡単な解決策のようです。

(Windows のバックグラウンドを持っている場合、Cocoa は、ほとんどの目的でウィンドウではなくビューを使用することを期待していることに注意してください。典型的なアプリケーションでは、インターフェイス階層の最上位でウィンドウを使用するだけで済みます。)

于 2014-02-03T09:25:16.217 に答える