我正在构建一个NSStatusBar应用程序,希望根据用户在图标上单击的是向左还是向右来调用不同的函数。
这是我到目前为止所知道的:
let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-1)
func applicationDidFinishLaunching(aNotification: NSNotification) {
let icon = NSImage(named: "statusIcon")
icon?.setTemplate(true)
statusItem.image = icon
statusItem.menu = statusMenu
}这样,每次点击都会显示statusMenu。如何区分mouseEvents?
发布于 2015-01-05 23:27:29
此代码段
func menuSelected (sender:AnyObject) {
var clickMask: Int = 0
if let clickEvent = NSApp.currentEvent! { // see what caused calling of the menu action
// modifierFlags contains a number with bits set for various modifier keys
// ControlKeyMask is the enum for the Ctrl key
// use logical and with the raw values to find if the bit is set in modifierFlags
clickMask = Int(clickEvent.modifierFlags.rawValue) & Int(NSEventModifierFlags.ControlKeyMask.rawValue)
}
if clickMask != 0 { ... } // click with Ctrl pressed
}从我的代码中检查ctrl-click。它位于从菜单项调用的方法中,如下所示:
let item = NSMenuItem(title: title, action: Selector("menuSelected:"), keyEquivalent: "")https://stackoverflow.com/questions/27781167
复制相似问题