提问人:Shweta Mittal 提问时间:9/12/2023 更新时间:9/12/2023 访问量:26
macOS 上的 F2 按键事件
F2 key press event on macOS
问:
为什么 kVK_F2 不等同于 F2 按键事件的常量 NSF2FunctionKey,kVK_F2的等效常量是什么,因为碳框架已弃用。
当我打印 keyCode 时,针对 NSF2FunctionKey 的 [Event keyCode] 是 63237(0xF705),而对于 kVK_F2,它打印的是 120,即 0x78。0x78似乎是 F2 键的标准键盘值。
示例代码:
//@property (nonatomic, strong) id eventMonitor;
NSEvent* (^handler)(NSEvent*) = ^(NSEvent *theEvent) {
NSEvent *result = theEvent;
NSUInteger flags = [theEvent modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask;
if ((flags & NSEventModifierFlagFunction) && (flags & NSEventModifierFlagCommand) && ([theEvent keyCode] == NSF2FunctionKey)) {
NSLog(@"Command + F2 key pressed.");
}
return result;
};
_eventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:(NSEventModifierFlagFunction | NSEventMaskKeyDown) handler:handler];
每当我按 F2 键时,它都不会读取 NSF2FunctionKey 的事件。但阅读KVK_F2。
答: 暂无答案
评论
NSF2FunctionKey
[theEvent characters]