I am working on a macOS app and I would like to handle a local hotkey event (command + up arrow key) in a NSViewController
.
Here's how I do it with Swift:
override func keyDown(with event: NSEvent) {
let modifierkeys = event.modifierFlags.intersection(.deviceIndependentFlagsMask);
let hasCommand = modifierkeys == .command;
switch Int(event.keyCode) {
case kVK_UpArrow where hasCommand:
print("command up");
break;
case kVK_ANSI_B where hasCommand:
print("command B");
break;
default:
break;
}
}
When I build and press command+up in the view, the console shows nothing. But when I press command+B, "command B" is logged out.
So why isn't this working for Command+up? How should I achieve this?