I have a NSView subclass and I would like it to react when the user presses the ⇧ Shift key. However, -[NSView keyDown:] (which I curren
Here is the code deals with key event with swift 3.0.1 tested on Xcode 8.2.1 and macOS 10.12.2
override func keyDown(with event: NSEvent) {
var handled = false
if event.keyCode == 53 { // ESC, same as `CMD + .`
handled = true
print("ESC")
}
if event.modifierFlags.contains(.command) { // .shift, .option, .control ...
if let chars = event.charactersIgnoringModifiers {
handled = true // likely we are interested with that key
switch chars {
case "r":
print("CMD + r")
case ",":
print("CMD + ,")
case "/":
print("CMD + /")
default:
handled = false
}
}
}
if !handled {
super.keyDown(with: event) // let system handle it(may contains sound)
}
}