如何制作类似 Finder 的 Dock 菜单?

Jam*_*mes 5 cocoa

当用户在正在运行的应用程序上使用鼠标右键(或命令按钮 + 鼠标单击)单击 Dock 图标时 - 他可以看到 Dock 菜单。通常由3部分组成:

http://i55.tinypic.com/i1for6.png

此应用程序打开的所有文档的列表(红色)、自定义应用程序的菜单部分(黄色)和隐式添加到所有项目的默认项目(蓝色)。

在这里苹果解释说,我们可以通过实现应用程序委托的方法来定义这些自定义项(黄色)?(NSMenu *)applicationDockMenu:(NSApplication *)sender,该方法应该返回一个有效的菜单(或通过在界面生成器中定义这个 Dock 菜单)。

如果您尝试打开 Finder 的停靠菜单,您会看到一个不寻常的菜单:

不寻常的菜单

这是不寻常的,因为它没有用于退出的普通项目和“选项”子菜单 - 任何其他启动的应用程序默认情况下都会有。相反,它只有“隐藏”。

我很确定应用程序或 nib 文件可以覆盖 Dock 菜单的这个默认“系统”(蓝色)部分。也许有人知道如何实现?

我正在开发一个安全应用程序,它不应该被允许退出或选择在“登录时”启动,但它应该在用户登录时一直运行(就像 Finder 一样,它可能只使用 Force 应用程序停止退出或活动监视器)。我有充分的理由想要摆脱它。我知道这不完全是 Mac OS 的方式,但这不完全是普通的应用程序。有没有人做过类似的事情?

谢谢

Rob*_*ger -1

您可以将按键集添加到应用程序的文件中,而不是弄乱LSUIElement停靠菜单吗?这将阻止您的应用程序出现在扩展坞中。YESInfo.plist

然而,它也会阻止它有菜单栏。