【问题标题】:Add/remove application icon from dock at runtime?在运行时从扩展坞添加/删除应用程序图标?
【发布时间】:2012-01-09 04:00:23
【问题描述】:

是否有一个公共的 Apple API 允许您在运行时删除应用程序的停靠图标? 我曾尝试通过 NSApplication 的 dockTile 替换一个大小为零的空视图,但这只会删除停靠图标而不会回收其空间和启动指示器。我也知道应用程序的 info.plist 中的 LSUIElement 参数,但该值仅在启动时评估。它不是运行时参数。

【问题讨论】:

  • 从未见过一个应用程序这样做。你认为这是个好主意吗?作为用户,我当然不会喜欢它。好问题,所以+1
  • 可能对此事意见不一。但也有这样的商业示例:Sparrow 允许用户选择应用程序是否具有菜单图标、停靠图标或两者兼有。但是,要从 Dock 中删除其图标需要重新启动应用程序。这让我相信他们在 plist 中使用了 NSUIElement 布尔值。

标签: macos cocoa dock


【解决方案1】:

这是一条单行道:您可以将您的应用设置为 NSUIElement 以隐藏停靠图标,然后调用 [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; 将其显示在停靠栏中,但一旦出现,您就无法将其删除。因此,您可以使停靠图标可由用户配置,但您必须重新启动应用程序才能隐藏图标。


编辑

您可以致电 setActivationPolicy:NSApplicationActivationPolicyProhibited 再次隐藏停靠图标 – user1592530 2012 年 9 月 18 日 14:21

评论是对的。现在有两种工作方式 – Daij-Djan 2012 年 12 月 24 日 11:46


【讨论】:

  • 如果有人需要雪豹之前的解决方案,Carbon API TransformProcessType[NSApplication setActivationPolicy:] 做同样的事情(包括仅在一个方向上工作)。
  • 您可以拨打setActivationPolicy:NSApplicationActivationPolicyProhibited再次隐藏dock-icon
猜你喜欢
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 2021-01-21
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多