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!)
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!)
Xcode建议使用menu
属性代替popupMenu
。但一旦设置了menu
属性,每次单击项目将只显示菜单。
相反,如果您想控制何时显示菜单,比如仅响应右键单击,则手动触发菜单的简单方法是在处理程序中调用NSStatusBarButton
上的performClick
。
statusItem.menu = myMenu
statusItem.button?.performClick(nil)
statusItem.menu = nil
如果您想自己处理点击事件,您需要将menu
设置为nil。