Как создать настраиваемое меню для моего приложения MacOS в доке с помощью Xcode - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь создать настраиваемое меню док-станции для моего приложения swift в док-станции, чтобы при щелчке правой кнопкой мыши на плитке док-станции моего приложения после его запуска он отображал мой настраиваемый элемент в дополнение к стандартному элементу. пункты меню дока. Я предпочитаю делать это программно или создавать пункт меню (stati c), используя XCode.

Я рассмотрел похожие вопросы, размещенные здесь ( Как я могу добавить меню в приложение в доке? ) и ( Добавление элементов в меню Dock из моего View Controller в моем приложении Cocoa ), но оба ссылались на старый интерфейс пера вместо того, чтобы создавать его с помощью раскадровки. Я также просмотрел библиотеку шаблонов файлов в раскадровке, но не смог найти шаблон для меню док-станции (я вижу только один для главного меню).

Любой указатель на то, как этого добиться, используя раскадровку или программно с помощью swift, будет очень ценится.

РЕДАКТИРОВАТЬ 24.04.2020: Со времени ответа Кена я решил настроить меню док-станции программно. Вот как я реализовал 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
    }

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

Есть идеи?

Спасибо.

Кенни

1 Ответ

1 голос
/ 24 апреля 2020

Вы можете реализовать метод applicationDockMenu(_:) в своем классе делегата приложения, чтобы вернуть меню элементов, которые будут добавлены в меню Dock.

Если вы проверяете документы для этого метода В нем также обсуждаются другие способы предоставления стыковочного меню c. Один из них предполагает создание отдельного NIB. Если нет шаблона для NIB меню, вы можете просто создать пустой и добавить к нему объект меню. На этот NIB ссылается ключ в файле Info.plist, и он не должен включать вашу раскадровку.

...