我已经制作了菜单栏应用程序,并直接在菜单栏应用程序上搜索右键单击。
首先,如果AppDelegate执行基本功能,则AppDelegate将在viewDidLoad
上运行此代码。
statusBar = NSStatusBar.init()
statusItem = statusBar.statusItem(withLength: 70.0)
statusBarButton = statusItem.button!
...(some unrelated code to post this question)...
statusBarButton.action = #selector(togglePopover(sender:))
然后togglePopover(sender:)
是
@objc func togglePopover(sender: AnyObject) {
switch (NSApp.currentEvent!.type) {
case .leftMouseUp:
if(StatusBarController.popover.isShown) {
hidePopover(sender)
}
else {
showPopover(sender)
}
case .rightMouseUp:
let quitAlert = NSAlert()
quitAlert.messageText = "Quit"
quitAlert.informativeText = "Do you want to quit this app?"
quitAlert.addButton(withTitle: "Quit")
quitAlert.buttons[0].target = self
quitAlert.buttons[0].action = #selector(quitApp)
quitAlert.addButton(withTitle: "Cancel")
quitAlert.buttons[1].target = self
quitAlert.showsSuppressionButton = true
quitAlert.runModal()
}
}
好的,让我发疯的问题是
case .rightMouseUp:
它根本不起作用,而
case .leftMouseUp:
正常工作:/
let quitAlert = NSAlert()
(在该代码之后)不是问题,因为我已经检查过了。
警报代码正常工作。
那有什么问题...?
帮助我