swift - 如何向停靠栏中的应用程序添加菜单?

标签 swift macos window dock

当您右键单击停靠栏中的应用程序时,会弹出一个上下文菜单。如何向其中添加菜单项?

例如,在 Safari 中,上下文菜单中有新窗口。

最佳答案

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

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

  1. 启动界面生成器。
  2. 为您的菜单创建一个新的 nib 文件。
  3. 创建一个菜单,其中包含您希望添加到菜单中的项目。
  4. 将文件所有者(默认为 NSApplication)的 dockMenu 导出连接到您的菜单。
  5. 使用键 AppleDockMenu 将 nib 名称添加到 Info.plist。指定的 Nib 名称没有扩展名。

使用 Application Delegate 动态添加菜单项

应用程序还可以向应用程序的 Dock 磁贴菜单动态提供项目。为此,您的应用程序的委托(delegate)对象提供了一个 applicationDockMenu: 方法。此方法返回一个 NSMenu 对象,该对象提供您希望添加到菜单的所有自定义菜单项。如果您还使用 nib 文件提供了菜单(请参阅 Adding Static Menu Items With a Nib File ),则您的委托(delegate)返回的任何菜单都会替换 nib 文件中提供的菜单。

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

关于swift - 如何向停靠栏中的应用程序添加菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33681565/

相关文章:

ios - 不能在不可变值 : 'n' is a 'let' constant 上使用可变成员

ios - 如何让scrollView滚动ImageView直到中心?

swift - 在 Swift 中访问闭包中的参数数量

c++ - Win32 弹出窗口 "shaking"调整大小

javascript - 确认窗口关闭

html - 在新选项卡或窗口中打开链接

ios - 为什么我的代码没有向键盘添加工具栏和完成按钮?

swift - SnapKit 中的不稳定错误

c++ - 尝试将使用 X11 的基于 linux 的开源 C++ 项目移植到 OSX 中。我已经安装了 XQuartz : now what?

linux - 在多个 shell 上运行 bash 脚本