Всплывающее меню пункта состояния устарело в OS X 10.14 - PullRequest
0 голосов
/ 03 марта 2019

Единственный способ получить элемент состояния для отображения меню при щелчке правой кнопкой мыши - это вызвать popUpMenu ()

@objc func statusBarPressed(button: NSButton){
    let event = NSApp.currentEvent
    let bundleId =  button.layer?.value(forKey: Constants.NSUserDefaultsKeys.bundleId) as! String
    let item = MyObj.statusItems.filter{$0.button == button}.first
    if event?.type == NSEvent.EventType.rightMouseUp {
        print("Right click")
        item?.popUpMenu(MyObj.menu) //works but depr
    } else {
        print("Left click")
    }
}

Есть ли какой-либо способ использования не устаревших методов для достижения этой цели?Использование

button.menu =  MyObj.menu
button.menu?.popUp(positioning: nil, at: NSPoint(x: 0, y: button.frame.height), in: button)

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

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