Cocoa:在运行时添加另一个停靠图标

Posted

技术标签:

【中文标题】Cocoa:在运行时添加另一个停靠图标【英文标题】:Cocoa: add another dock icon at runtime 【发布时间】:2011-09-11 15:06:46 【问题描述】:

是否可以在不使用[NSWorkspace launchApplication:] 的情况下在运行时向停靠栏添加另一个图标?

怎么做?


在你说“不”之前:我愿意使用 fork() 之类的东西。

我实际上尝试了fork(),但我得到了错误:

The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().
Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() to debug.

【问题讨论】:

【参考方案1】:

启动另一个应用程序,例如通过[NSWorkspace launchApplication:].

【讨论】:

在我的用例中,我无法真正使用对文件系统的任何访问权限。 你为什么不能?这是一个奇怪且不切实际的限制。 @Jonathan:嗯,我的情况就是这样。 连你自己的应用程序包都不行? 抱歉,Albert,但这不是 Mac OS X 上的真实情况。如果您的进程可以访问任何其他内容,则它具有文件系统访问权限。【参考方案2】:

如果你想在 Dock 中添加一个额外的图标,Yuji 的回答是最简单的解决方案。 如果您想更改应用的现有图标,可以创建 Dock 磁贴插件。 这些插件是在 Snow Leopard 中引入的,即使您的应用程序未运行,它们也允许您显示小信息。 (就像 iCal 的图标,它总是显示当前日期)。

Apple 的 Dock 磁贴插件文档:http://developer.apple.com/library/mac/#documentation/Carbon/Conceptual/customizing_docktile/CreatingaDockTilePlug-in/CreatingaDockTilePlug-in.html#//apple_ref/doc/uid/TP30000986-CH4-SW1

【讨论】:

以上是关于Cocoa:在运行时添加另一个停靠图标的主要内容,如果未能解决你的问题,请参考以下文章

Cocoa osx:为所有正在运行的应用程序在停靠元素上添加一个菜单项

以编程方式将应用程序图标添加到安装时停靠

命令行中的 Cocoa 应用程序

应用程序未运行时的 OS X 停靠菜单

单击停靠图标时如何打开应用程序窗口?

Cocoa:访问事件队列?