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



代码:

[NSApp setPresentationOptions: NSApplicationPresentationHideMenuBar | NSApplicationPresentationHideDock];

它隐藏Dock和MenuBar OSX。

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

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

好吧,它应该永远隐藏主菜单,在plist中使用LSUIElement是一种比同时使用setActivationPolicysetPresentationOptions更古老的操作方式,因此您可能需要尝试使用[NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory]

LSUIElement的做事方式不支持在运行时进行更改。你把旧的和新的混在一起了。在OSX 10.9+上弃用LSUIElement并使用setActivationPolicy

有很多关于这方面的讨论。这是一个很好的答案。我在这里写了一个关于当用户"退出"应用程序时如何切换到附件模式的答案,该应用程序使用LSUIElement会破坏的运行时功能。所以不要使用它。

相关内容

  • 没有找到相关文章

最新更新