将菜单项添加到停靠栏中的右键单击应用程序菜单会导致每次单击时重新添加它们

问题描述 投票:0回答:1

所以当你右键单击macos中的Dock中的应用程序图标时,我一直在尝试将项目添加到右键菜单中

但是当我使用此代码执行此操作时,只要我右键单击应用程序图标,它就会重新添加菜单项

 class myclass: NSObject , NSApplicationDelegate{


   func applicationDockMenu(_ sender: NSApplication) -> NSMenu? {


    dockMenu.addItem(withTitle: "test1", action: nil, keyEquivalent:     "")

    return dockMenu
   }

enter image description here

swift macos cocoa
1个回答
0
投票

你必须在方法中创建NSMenu

func applicationDockMenu(_ sender: NSApplication) -> NSMenu? {

    let dockMenu = NSMenu()
    dockMenu.addItem(withTitle: "test1", action: nil, keyEquivalent:     "")
    return dockMenu
}

或删除项目

let dockMenu = NSMenu()

func applicationDockMenu(_ sender: NSApplication) -> NSMenu? {

    dockMenu.removeAllItems()
    dockMenu.addItem(withTitle: "test1", action: nil, keyEquivalent:     "")
    return dockMenu
}

但是,我会在Interface Builder中声明它并使用插座。

© www.soinside.com 2019 - 2024. All rights reserved.