一个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")
}
}
}