如何使用Xcode在dock中为我的macOS应用程序创建自定义dock菜单



我正试图在dock中为我的swift应用程序创建一个自定义的dock菜单,这样当用户在我的应用程序启动后右键单击dock磁贴时,它将显示我的自定义项目以及默认的dock菜单项目。我更喜欢以编程方式或使用Xcode创建(静态(菜单项。

我已经复习了这里发布的类似问题(我如何在dock中向应用程序添加菜单?(和(从我的Cocoa应用程序中的视图控制器向dock菜单添加项目(,但两者都提到了旧的笔尖界面,而不是如何使用故事板创建一个界面。我还查看了故事板中的文件模板库,但找不到停靠菜单的模板(我只看到主菜单的模板(。

任何关于如何使用故事板或通过swift编程实现这一点的指针都将不胜感激。

2020年4月24日编辑:自从Ken回应后,我决定以编程方式自定义dock菜单。以下是我如何在AppDelegate 中实现applicationDockMenu(_:)

2020年4月24日编辑#2:修复了方法中缺少的_输入参数,并解决了问题。

func applicationDockMenu(_ sender: NSApplication) -> NSMenu? {
let myMenu = NSMenu(title: "MyMenu")
let myMenuItem = NSMenuItem(title: "My Item 1", action: nil, keyEquivalent: "")
myMenu.addItem(myMenuItem)
return myMenu
}

我一定错过了其他东西,因为新项目没有出现,我在应用程序启动后右键单击了应用程序的停靠图标。

知道吗?

谢谢。

Kenny

您可以在应用程序委托类中实现方法applicationDockMenu(_:),以返回要添加到Dock菜单的项目菜单。

如果您在文档中检查该方法,它还会讨论提供静态Dock菜单的其他方法。其中之一涉及创建一个单独的NIB。如果没有菜单NIB的模板,你可以简单地创建一个空的NIB并添加一个菜单对象。该NIB由Info.plist文件中的一个键引用,不需要涉及你的故事板。

最新更新