如何在Dock中为应用程序添加菜单?

7

当您在Dock上右键单击应用程序时,会弹出上下文菜单。我该如何在其中添加一个菜单项?

例如,像Safari一样,在上下文菜单中有“新窗口”选项。


1
请查看Dock Tile编程指南 - Code Different
1个回答

11

使用Nib文件添加静态菜单项

如果您的应用程序需要向应用程序 Dock tile 的菜单中添加静态项,可以在一个Nib文件中提供这些项。为此,请执行以下步骤。

  1. 启动Interface Builder。
  2. 为您的菜单创建一个新的Nib文件。
  3. 创建一个包含您希望添加到菜单中的项的菜单。
  4. 将文件的所有者(默认情况下为 NSApplication)的 dockMenu 输出连接到您的菜单。
  5. 使用键 AppleDockMenu 将Nib名称添加到Info.plist中。Nib名称不带扩展名。

使用应用程序委托动态添加菜单项

应用程序还可以动态地向应用程序 Dock tile 的菜单提供项。为此,您的应用程序的委托对象提供一个名为applicationDockMenu:的方法。该方法返回一个NSMenu对象,其中包含您希望添加到菜单中的所有自定义菜单项。如果还使用Nib文件提供了一个菜单(请参见使用Nib文件添加静态菜单项),则由您的代理返回的菜单将替换在Nib文件中提供的菜单。

(来源:https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/docktasks_cocoa/docktasks_cocoa.html#//apple_ref/doc/uid/TP30000986-CH3-SW7


1
是否有任何关于如何在应用程序关闭时添加动态菜单的文档/教程?类似于跳转列表菜单,Xcode之前打开的项目有这个功能吗? - Dominique

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接