добавление пунктов меню в меню приложения, вызываемое правой кнопкой мыши в доке, приводит к их повторному добавлению при каждом нажатии - PullRequest
0 голосов
/ 24 марта 2019

, поэтому я пытался добавить элементы в контекстное меню, когда вы щелкаете правой кнопкой мыши значок приложения в доке в macos

, но когда я делаю это с этим кодом, всякий раз, когда я щелкаю правой кнопкой мыши по приложениюзначок это добавляет пункт меню

 class myclass: NSObject , NSApplicationDelegate{


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


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

    return dockMenu
   }

enter image description here

1 Ответ

0 голосов
/ 24 марта 2019

Вы должны создать 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
}

Однако я бы объявил его в Интерфейсном Разработчикеи используйте розетку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...