菜单栏应用程序中的OS X键事件(Swift)

时间:2016-01-02 03:39:30

标签: swift macos cocoa

我最近一直在研究Cocoa项目。它是一个菜单栏/状态栏应用程序。当用户按下选项键时,我需要在菜单栏应用程序中显示一些额外信息,并且我一直在寻找无处不在窗口上显示任何窗口的可能性。是否可以从AppDelegate.swift运行keyDown:来执行此操作?指导表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:0)

我不确定您是否可以全局监控密钥,但您可以执行以下选项密钥:

NSEvent.addGlobalMonitorForEventsMatchingMask(NSEventMask.FlagsChangedMask) { (theEvent) -> Void in
    if theEvent.modifierFlags.intersect(.DeviceIndependentModifierFlagsMask) == .AlternateKeyMask {
        print("ONLY OPTION")
    }
    switch theEvent.modifierFlags.intersect(.DeviceIndependentModifierFlagsMask) {
    case NSEventModifierFlags.ShiftKeyMask :
        print("shift key is pressed")
    case NSEventModifierFlags.ControlKeyMask:
        print("control key is pressed")
    case NSEventModifierFlags.AlternateKeyMask :
        print("option key is pressed")
    case NSEventModifierFlags.CommandKeyMask:
        print("Command key is pressed")
    default:
        print("no key or more than one is pressed")
    }
}

答案 1 :(得分:0)

您的意思是当用户按住选项键时更改菜单项吗?

检出菜单项的isAlternatekeyEquivalentModifierMask属性。

Option (⌥) + Context Menu in Cocoa?