Что является альтернативой NSStatusItem.popUpMenu? - PullRequest
0 голосов
/ 01 октября 2018

NSStatusItem.popUpMenu устарел в macOS 10.14, но я не могу найти хорошую альтернативу.

let m = statusItem.menu!
statusItem.popUpMenu(m) // deprecated

Я пытался открыть всплывающее окно с помощью меню и кнопки, но оно не позиционируетсяправильно.

let m1 = m.items.first!
m.popUp(positioning: m1, at: .zero, in: statusItem.button!)

1 Ответ

0 голосов
/ 22 августа 2019

Xcode предлагает использовать свойство menu вместо popupMenu.Но как только вы установите свойство menu, каждый щелчок по элементу будет отображать только меню.

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

statusItem.menu = myMenu
statusItem.button?.performClick(nil)
statusItem.menu = nil

Вы должны установить menu обратно в ноль, если хотите продолжать обрабатывать клики самостоятельно.

...