2

我正在尝试在 Dock 中为我的 swift 应用程序创建一个自定义的 Dock 菜单,这样当用户在启动后右键单击我的应用程序的 Dock 磁贴时,除了默认的 Dock 菜单项之外,它还会显示我的自定义项. 我更喜欢以编程方式或使用 Xcode 创建(静态)菜单项。

我已经查看了此处发布的类似问题(如何在 Dock 中向应用程序添加菜单?)和(从我的 Cocoa 应用程序中的视图控制器向 Dock 菜单添加项目)但都提到了旧的 nib 界面而不是如何使用情节提要创建一个。我还查看了故事板中的文件模板库,但找不到停靠菜单的模板(我只看到一个用于主菜单的模板)。

任何有关如何使用情节提要或以编程方式使用 swift 实现此目的的指针都将不胜感激。

编辑 2020 年 4 月 24 日:由于肯的回应,我决定以编程方式自定义停靠菜单。这是我applicationDockMenu(_:)在 AppDelegate 中实现的方式

编辑#2 4/24/2020:修复_了方法的缺失输入参数并解决了问题。

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
    }

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

任何想法?

谢谢。

肯尼

4

1 回答 1

2

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

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

于 2020-04-24T00:30:15.870 回答