首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift:在NSStatusBar上右键/左键单击

Swift:在NSStatusBar上右键/左键单击
EN

Stack Overflow用户
提问于 2015-01-05 22:03:40
回答 1查看 656关注 0票数 0

我正在构建一个NSStatusBar应用程序,希望根据用户在图标上单击的是向左还是向右来调用不同的函数。

这是我到目前为止所知道的:

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

发布于 2015-01-05 23:27:29

此代码段

代码语言:javascript
复制
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。它位于从菜单项调用的方法中,如下所示:

代码语言:javascript
复制
let item = NSMenuItem(title: title, action: Selector("menuSelected:"), keyEquivalent: "")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27781167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档