我正在开发一个可可应用程序,它可以创建普通的可可窗口和使用碳窗口初始化的可可窗口。所有窗口都应浮动在所有应用程序之上。对于可可窗口,我将窗口级别设置为NSTornOffMenuWindowLevel,对于碳窗口,我使用kUtilityWindowClass。两者都很好,窗户漂浮在其他应用程序之上,但问题是碳和可可窗口没有相同的窗口水平,因此碳窗口将始终浮在可可窗口之上。有没有办法让两种窗口类型具有相同的窗口级别而不会丢失其他应用程序上方的浮动?我想因为kUtilityWindowClass似乎是唯一允许在其他应用程序中浮动的窗口类,我正在寻找它在可可中的等价物...感谢您的帮助!
答案 0 :(得分:1)
如果查看NSWindow.h,您会看到Cocoa窗口级别是根据Core Graphics窗口级别定义的,例如,NSFloatingWindowLevel
定义为kCGFloatingWindowLevel
。如果查看CGWindowLevel.h中定义这些窗口级别的位置,其中一个选项是kCGUtilityWindowLevel
。这是我的猜测,相当于kUtilityWindowClass
。
答案 1 :(得分:0)
我不确切知道,但你可以试验一下。我会尝试NSModalPanelWindowLevel
(一个高于NSTornOffMenuWindowLevel
),NSMainMenuWindowLevel
,NSStatusWindowLevel
和NSPopUpMenuWindowLevel
,这是从相对较低到最高的其他可用级别。