【问题标题】:Shift + Return key action in a Cocoa AppCocoa 应用程序中的 Shift + Return 键操作
【发布时间】:2016-08-09 11:44:18
【问题描述】:

我有一个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中没有Return键的选项。

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

【问题讨论】:

  • 请不要在您的问题中包含答案。如果答案解决了您的问题,请将答案标记为已接受;你可以发表你自己的答案。谢谢。

标签: objective-c swift macos cocoa


【解决方案1】:

我建议您使用以下方法来获取 keyCode 以了解它何时是 shift、return 键或您想要检测的任何内容,以防拥有所需的键,执行您的逻辑。

import Cocoa

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

您也可以使用keyUp 事件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2010-12-27
    相关资源
    最近更新 更多