让一个NSWindow(或其他东西)出现在菜单栏上方

时间:2011-04-07 20:55:44

标签: objective-c cocoa

我想创建一个可以出现在mac菜单栏上方的NSWindow(或其他东西)。我知道这是可能的,因为TeamViewer使用“鼠标”图像来完成它。

示例:http://i.stack.imgur.com/6iZbG.png

他们是怎么做到的? (或者,我该怎么办?)

1 个答案:

答案 0 :(得分:6)

你想查看{mormitz'评论中提到的window levels。 NSMainMenuWindowLevel之上的任何级别都应出现在菜单栏上方。

如果你真的想要超越其他一切,你可以使用屏蔽窗口级别(技术上不是常规NSWindow窗口级别的一部分)。屏蔽窗口适用于接管屏幕的全屏应用程序,但您可以使用常规窗口执行此操作。我有一个放大镜类型的应用程序,使用它来产生良好的影响。

[myWindow setWindowLevel:CGShieldingWindowLevel()];

同样提到莫里茨的评论,这样做通常是一个坏主意,所以请确保你有充分的理由这样做。