使NSWindow真正达到最高水平(鼠标以上,任务控制/暴露之上)

时间:2013-01-16 02:20:16

标签: objective-c macos nsview nswindow

我想知道是否有可能让我的NSWindow节目绝对超越一切。我当前使用代码将窗口级别设置为CGShieldingWindowLevel ...

[self setLevel:CGShieldingWindowLevel()];

......这在很大程度上做得很好,但还不够。当任务控制或曝光处于活动状态时,不会绘制窗口,并且它将在鼠标下方绘制。我想知道是否有可能创造一个真正的“顶级”,这将超越所有这些元素。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:6)

关于您关于Expose的问题,您可能只是没有正确设置收集行为。创建NSWindow的子类,并在初始化的某处执行以下操作:

self.collectionBehavior = (NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorIgnoresCycle);

如果您希望窗口位于所有空间(您可能会这样做),请不要忘记添加NSWindowCollectionBehaviorCanJoinAllSpaces

就你对鼠标的问题而言,不幸的是我认为没有办法在它上面绘制。