用Swift的NSTextView在Command-Enter上执行动作



一个NSTextField可以连接到一个IBAction,并在用户按回车键时调用它。

当用户按Command-Enter(或Option-Enter等)时,我如何使用NSTextView执行操作?

阅读文档使我认为这与doCommandBySelector:有关,但我找不到任何例子。

您可以覆盖keyDown事件并检查是否返回键代码== 36(返回键)或and键代码== 76(输入键)和modifierFlags = CommandKeyMask。尝试如下:

import Cocoa
class ViewController: NSViewController {
    @IBOutlet weak var textView: NSTextView!
    override func viewDidLoad() {
        super.viewDidLoad()
        NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
            self.keyDown(with: $0)
            return $0
        }
    }
    override func keyDown(with event: NSEvent) {
        super.keyDown(with: event)
        if event.keyCode == 36 && event.modifierFlags.intersection(.deviceIndependentFlagsMask) == .command {
            print("command-return pressed")
        }
        if event.keyCode == 76 && event.modifierFlags.intersection(.deviceIndependentFlagsMask) == .command {
            print("command-enter pressed")
        }
    }
}

最新更新