我的菜单工作得很好我只想在点击更新其中的信息时收到通知。但是,当我单击状态栏按钮时,我的statusBarButtonClicked函数永远不会被触发。如何向其发送点击事件?
@IBOutlet weak var statusMenu: NSMenu!
let log = SwiftyBeaver.self
let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
override func awakeFromNib() {
statusItem.menu = statusMenu
if let button = statusItem.button {
button.target = self
button.action = #selector(self.statusBarButtonClicked(sender:))
button.sendAction(on: NSEvent.EventTypeMask.leftMouseUp)
}
}
@objc func statusBarButtonClicked(sender: NSStatusBarButton) {
log.info("Status menu clicked")
}
答案 0 :(得分:0)
如果设置了菜单,显然该操作不起作用。设置菜单的委托并实现NSMenuDelegate
方法
func menuNeedsUpdate(_ menu: NSMenu)