【问题标题】:Use LSUIElement (aka no Dock icon) but retain the "File, Edit, View" menubar?使用 LSUIElement(又名无 Dock 图标)但保留“文件、编辑、查看”菜单栏?
【发布时间】:2011-10-19 02:09:31
【问题描述】:

我希望我的应用拥有:

  • 菜单栏额外图标(按时钟)
  • 应用菜单栏(“文件、编辑、查看等”)

我不希望我的应用拥有:

  • 停靠图标

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

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

【问题讨论】:

  • 您想要这种组合有什么特别的原因吗?你到底想完成什么?

标签: objective-c macos cocoa


【解决方案1】:

NSApplication's setActivationPolicy 可能就是你所追求的。

[NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory];

请注意讨论:

目前,NSApplicationActivationPolicyNone 和 NSApplicationActivationPolicyAccessory 可以更改为 NSApplicationActivationPolicyRegular,但其他修改不是 支持。需要链接到正在运行的应用程序

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

【讨论】:

  • 嗯,这意味着我可以将其作为仅菜单栏图标的应用程序启动,然后将其更改为具有全部 3 个(停靠/菜单栏/菜单栏图标)的应用程序。但是不要将它改回只有菜单栏图标。不是我要找的东西,但似乎 (menubar-icon/menubar/no-dock) 是不可能的。
【解决方案2】:

您可以创建两个“独立”的应用程序。一个有停靠图标和菜单项,另一个只有时钟图标。 当您单击时钟旁边的图标时,它会启动停靠应用程序。当您关闭停靠应用程序时,“后台”应用程序会继续运行。

如果该模型适合您,那么这就是您要走的路。但我会权衡这种努力与 File-Edit-View 将为您做什么。

【讨论】:

  • 很有趣,但我认为对我的目的来说太复杂了。而且你永远不会得到没有停靠图标的文件-编辑-视图菜单栏。
猜你喜欢
  • 1970-01-01
  • 2020-11-20
  • 1970-01-01
  • 1970-01-01
  • 2018-10-09
  • 1970-01-01
  • 1970-01-01
  • 2016-12-24
  • 2018-12-21
相关资源
最近更新 更多