9

私の NSWindow を絶対にすべての上に表示できるかどうか疑問に思っていました。現在、コードを使用してウィンドウレベルを CGShieldingWindowLevel に設定しています...

[self setLevel:CGShieldingWindowLevel()];

...そして、これはほとんどの場合素晴らしい仕事をしますが、十分ではありません。ミッション コントロールまたはエクスポーズがアクティブな場合、ウィンドウは描画されず、マウスの下に描画されます。これらすべての要素の上に描画される真の「トップレベル」を作成できるかどうか疑問に思っていました。

どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

7

Expose に関するご質問については、コレクションの動作を正しく設定していない可能性があります。のサブクラスをNSWindow作成し、初期化のどこかで次のことを行います。

self.collectionBehavior = (NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorIgnoresCycle);

すべてのスペースにウィンドウを配置したい場合 (おそらくそうなります) も追加することを忘れないでくださいNSWindowCollectionBehaviorCanJoinAllSpaces

マウスに関するご質問ですが、残念ながらその上に描画する方法はないと思います。

于 2013-01-16T05:08:48.663 に答える