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

标签 swift xcode macos dock nsdocktile

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

我已经查看了此处发布的类似问题(How can I add a menu to the application in the dock?)和(Adding Items to the Dock Menu from my View Controller in my Cocoa App),但两者都提到了旧的 nib 界面,而不是如何使用 Storyboard 创建一个。我还查看了 Storyboard中的文件模板库,但找不到停靠菜单的模板(我只看到一个用于主菜单的模板)。

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

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

编辑#2 2020 年 4 月 24 日:修复丢失 _方法的输入参数和解决的问题。

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
    }

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

任何的想法?

谢谢。

肯尼

最佳答案

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

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

关于swift - 如何使用 Xcode 在 Dock 中为我的 macOS 应用程序创建自定义 Dock 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61398962/

相关文章:

swift - 如何使用 Swift 制作水平 UICollectionView

Xcode 4,断点在 Mac OS 命令行工具的单元测试中不起作用

ruby - gem install nokogiri -v '1.6.3.1' on OS X 10.10 Yosemite 未安装

xcode - 代码设计抛出错误 'errSecInternalComponent'

macos - PPC断点

ios - SceneKit – SCNCamera 自上而下 View

ios - 如何在 swift 4 中使用 UIImagePickerController

swift - 标签名称中的变量 - Swift

objective-c - 使用 AVAudioRecorder 在后台录制语音(当我点击主页按钮时)

ios - 如何在 UIVIew 的底部添加阴影