macOS 上的 F2 按键事件

F2 key press event on macOS

提问人:Shweta Mittal 提问时间:9/12/2023 更新时间:9/12/2023 访问量:26

问:

为什么 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。

Objective-C macOS 按键

评论

0赞 Willeke 9/12/2023
的文档是“对应于 unicode 字符的保留键盘功能键的常量”。的价值是什么?NSF2FunctionKey[theEvent characters]
0赞 Shweta Mittal 9/12/2023
@Willeke,它打印@“?”那么kVK_F2的等效密钥代码是什么呢?
0赞 Willeke 9/12/2023
没有等价物。也许这会有所帮助:Swift 2:检测功能键按下
0赞 Willeke 9/13/2023
需要明确的是,问题(而不是答案)Swift 2:检测功能键按下中的代码可检测 F7、F8 和 F9。

答: 暂无答案