为什么setPresentationOptions和LSUIElement不能一起使用?

时间:2015-05-19 13:48:54

标签: objective-c macos user-interface nsapplication

代码:

[NSApp setPresentationOptions: NSApplicationPresentationHideMenuBar | NSApplicationPresentationHideDock];

它隐藏了Dock和MenuBar OSX。

当我将关键LSUIElement添加到我的Info.plist文件中并重新运行我的代码时:Dock被隐藏,但MenuBar并没有被隐藏。

为什么呢? 如何在添加LSUIElement后隐藏MenuBar?

1 个答案:

答案 0 :(得分:2)

好吧,它应该永远隐藏主菜单但是在plist中使用LSUIElement比使用setActivationPolicy和{{ 1}}所以你可能想给setPresentationOptions一个镜头。

[NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory]做事方式不支持运行时的更改。你是新旧混合的。弃用LSUIElement并在OSX 10.9 +上使用LSUIElement

这些方面有很多讨论。 This is a good answer。我写了一个关于如何在用户“退出”应用程序here并使用setActivationPolicy将中断的运行时功能时切换到附件模式的答案。所以不要使用它。