在Cocoa应用程序中Shift + Return键操作

时间:2016-08-09 11:44:19

标签: objective-c swift macos cocoa

我有NSTextView,每当用户按下Shift + Return密钥时,我都应该执行操作。

但问题是我无法弄清楚如何知道用户是否按下Return键。

我已使用此代码了解用户是否按下Shift键。

override func flagsChanged(theEvent: NSEvent) {

        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")
        case NSEventModifierFlags.FunctionKeyMask:
            print("Function key is pressed")

        default:
            print("no key or more than one is pressed")
        }
    }

NSEventModifierFlags中没有返回键的选项。

让我知道你的想法?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我建议你使用以下方法让keyCode理解它是一个移位,返回键还是你想要检测的任何东西,如果你有所需的键,执行你的逻辑。

import Cocoa

class YourWindow: NSWindow {
    override func keyDown(event: NSEvent) {
        super.keyDown(event)
        print("Caught a key down: \(event.keyCode)!")
    }
}

您还可以使用keyUp活动