Как создать настраиваемое меню док-станции для моего приложения macOS в доке с помощью Xcode
Я пытаюсь создать настраиваемое меню док-станции для моего быстрого приложения в док-станции, чтобы, когда пользователь щелкнул правой кнопкой мыши плитку док-станции моего приложения после его запуска, он отобразил мой настроенный элемент в дополнение к элементам меню док-станции по умолчанию. Я предпочитаю делать это программно или создавать (статический) пункт меню с помощью Xcode.
Я рассмотрел похожие вопросы, размещенные здесь ( Как я могу добавить меню в приложение в доке?) И ( Добавление элементов в меню дока из моего контроллера представления в моем приложении Какао), но оба ссылались на старый интерфейс пера вместо того, как создать его с помощью раскадровки. Я также просмотрел библиотеку шаблонов файлов в раскадровке, но не смог найти шаблон для меню док-станции (я вижу только один для главного меню).
Мы будем очень благодарны за любой указатель на то, как добиться этого с помощью раскадровки или программно с помощью Swift.
РЕДАКТИРОВАТЬ 24/4/2020: после ответа Кена я решил программно настроить меню док-станции. Вот как я реализовалapplicationDockMenu(_:)
в AppDelegate
РЕДАКТИРОВАТЬ №2 24/4/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 ответ
Вы можете реализовать метод applicationDockMenu(_:)
в классе делегата вашего приложения, чтобы вернуть меню элементов, которые нужно добавить в меню Dock.
Если вы проверите документацию по этому методу, в ней также обсуждаются другие методы для создания статического меню Dock. Один из них предполагает создание отдельного СИБ. Если нет шаблона для NIB меню, вы можете просто создать пустой и добавить к нему объект меню. На этот NIB ссылается ключ в файле Info.plist, и его раскадровка не требуется.