使用LSUIElement(也就是没有Dock图标)但保留“文件,编辑,查看”菜单栏?

时间:2011-10-19 02:09:31

标签: objective-c macos cocoa

我希望我的应用有:

  • 菜单栏额外图标(按时间)
  • App菜单栏(“文件,编辑,查看等”)

希望我的应用有:

  • 停靠栏图标

这可能吗?如果重要的话,我将通过Mac App Store部署10.6和10.7。

在info.plist文件中设置LSUIElement会删除停靠栏图标,但也会移除菜单栏。

2 个答案:

答案 0 :(得分:4)

NSApplication's setActivationPolicy可能就是你想要的。

[NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory];

请注意讨论:

  

目前,NSApplicationActivationPolicyNone和   NSApplicationActivationPolicyAccessory可能会更改为   NSApplicationActivationPolicyRegular,但其他修改不是   supported.Needs指向正在运行的应用程序的链接

根据NSApplicationActivationPolicyAccessory's documentation,您可能需要以编程方式确保显示菜单栏。

答案 1 :(得分:2)

您可以创建两个“单独”的应用程序。一个有停靠图标和菜单项,另一个只有时钟图标。 当您按时钟点击图标时,它会启动停靠应用程序。当您关闭dock应用程序时,'background'应用程序将继续运行。

如果该模型适合您,则可以采用这种方式。但我会根据File-Edit-View为您做的事情来衡量这一努力。