0

私には2つNSWindowのがあり、そのうちの1つはもう1つの子です。基本的に私が達成したいのは、子供が飛び出して親を伸ばしているように見えることです。必要に応じて、本を開くことと考えてください。表紙がめくられ、タイトルページと同じZオーダーになります。

ただし、一方のウィンドウが常にもう一方のウィンドウに影を落としているという問題があります。それらを同じZに配置して、どちらも他方に影を落とさず、両方がそれらの下のウィンドウに影を落とすようにする方法はありますか?

4

1 に答える 1

1

これは機能しますか?既存の子ウィンドウを取得し、setShadow:false 呼び出しで影を削除します。一方、2 つの既存のウィンドウの背後に Z オーダーされた 3 番目のダミー ウィンドウを作成します。このウィンドウが常に真の子ウィンドウと同じサイズと形状になるようにし、影を付けたままにします。

これには 2 つの問題が考えられます: (1) 2 つの影が交差するポイントでの奇妙な「二重影」。(2) フォーカスのあるウィンドウが投じる影は、フォーカスのないウィンドウが投じる影よりもはるかに大きくなります。そのため、2 つのウィンドウ間でフォーカスが移動すると、影のサイズが変わる可能性があります。その問題をどのように回避するかわかりません。

それ以外の場合、唯一の選択肢は、シャドウをオフにした両方のウィンドウを、1 つのシャドウをキャストする厄介なコンテナー ウィンドウに配置することです。これは非常に根本的な UI の変更になりますが、私の経験では、アプリケーションの「外側のエッジ」のデフォルトの外観を変更したり、OS 機能を使用せずに独自の部分的な透過性をコーディングしようとしたりするアプリは、スムーズに実行されることはほとんどありません。

于 2012-08-28T06:17:40.920 に答える