如何让我的NSWindow出现在每个应用程序和菜单栏前面?我也不希望窗口上有标题栏。只是一个没有Dock菜单栏的全屏应用,而不是苹果的全屏模式。 我可以将我的窗口置于所有其他应用程序之上并像这样停靠:
[window setLevel:kCGPopUpMenuWindowLevel];
但它不包括mac菜单栏。
答案 0 :(得分:5)
您无法将默认窗口移动到菜单栏的上方,因为它受到约束。您必须子类化NSWindow并覆盖constrainFrameRect:toScreen:
- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen {
return frameRect;
}
答案 1 :(得分:1)
将窗口级别设置为NSMainMenuWindowLevel + 2
。
如果使用NSMainMenuWindowLevel + 1
,顶部菜单栏有时仍会显示,但非常难以预测。 NSMainMenuWindowLevel + 2
强制它停留在菜单栏上方并永久保持焦点。
[window setLevel:NSMainMenuWindowLevel + 2];
答案 2 :(得分:1)
在Swift 3中:
window.level = Int(CGWindowLevelForKey(.mainMenuWindow)) + 2