当右键单击时,我可以获得状态项以显示菜单的唯一方法是调用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)
得到类似的结果,但是弹出菜单是浮动的,而不是像我想要的那样下拉菜单栏项。