Swift NSMenuItem检测移位点击

Swift NSMenuItem检测移位点击,swift,macos,nsmenu,nsmenuitem,Swift,Macos,Nsmenu,Nsmenuitem,我目前正在将NSMenuItem添加到我的NSMenu中,并且我能够成功地检测和处理单击事件。但是,我想添加第二个选项,并检测用户是否在按住SHIFT键的同时单击了菜单项 let menuItem = myMenu?.submenu?.addItemWithTitle("Click me", action: "itemClicked:", keyEquivalent: "") 有没有办法做到这一点?我查看了keyEquivalent,但我没有看到任何关于如何使其工作的信息 感谢@LeoDabu

我目前正在将NSMenuItem添加到我的NSMenu中,并且我能够成功地检测和处理单击事件。但是,我想添加第二个选项,并检测用户是否在按住SHIFT键的同时单击了菜单项

let menuItem = myMenu?.submenu?.addItemWithTitle("Click me", action: "itemClicked:", keyEquivalent: "")
有没有办法做到这一点?我查看了keyEquivalent,但我没有看到任何关于如何使其工作的信息


感谢@LeoDabus的帮助,但我能够在NSMenuItem的事件处理程序中使用以下代码解决此问题:

if let event = NSApp.currentEvent {
    if event.modifierFlags.contains(.ControlKeyMask) {
        // success!
    }
}

快乐编码

全局监视shift/command键是否工作,但当用户在子菜单中导航时,此代码不会执行,因此这不起作用@leodabusthanks对于响应,我尝试将其更改为addLocalMonitorForEventsMatchingMask,但仍然不起作用..不确定为什么会关闭任何想法@LeoDabus?谢谢again@leodabus我想它不起作用的原因是因为我的应用程序没有窗口,我只有一个NSStatusItem。你能重新打开这个问题吗?这些都不起作用,我想发布实际的解决方案@leodabus也应该起作用
if-NSApplication.sharedApplication().currentEvent?.modifierFlags.contains(.ControlKeyMask)==true{
注意,在Swift 4中,它变成了:if-event.modifierFlags.contains(.control){//success!}