NSTextField
可以连接到IBAction
,并在用户按下Enter键时将其调用。
当用户按下Command-Enter(或Option-Enter等)时,如何使用NSTextView
执行操作?
阅读文档使我认为这与doCommandBySelector:
有关,但我找不到任何示例。
您可以重写keyDown事件,并检查返回键代码== 36(返回键)或键代码== 76(输入键)和修饰符标记= 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")
}
}
}