相关疑难解决方法(0)

添加带有 NSEventMaskKeyDown 掩码的全局监视器不会触发

我正在开发一个 MacOS 菜单栏应用程序,它需要跟踪一些全局快捷方式,以便于调整外部显示器上的显示亮度。但是,我无法让它在任何键盘相关事件上触发处理程序(鼠标事件工作得很好)。

我正在使用以下代码检查可访问性

NSDictionary *options = @{CFBridgingRelease(kAXTrustedCheckOptionPrompt): @YES};
BOOL accessibilityEnabled = AXIsProcessTrustedWithOptions((CFDictionaryRef)options);
Run Code Online (Sandbox Code Playgroud)

然后,我使用以下方法添加全局事件监视器:

self.eventMonitor = [NSEvent addGlobalMonitorForEventsMatchingMask:NSEventMaskKeyDown handler:^(NSEvent * event) {
    NSLog(@"Some event");
}];
Run Code Online (Sandbox Code Playgroud)

如果我切换NSEventMaskKeyDown到鼠标NSEventMaskMouseMove或其他与鼠标相关的东西,一切都会正常。如果我尝试NSEventMaskAny,不会再次触发任何内容(这看起来很奇怪,因为它仍然应该在鼠标上触发)。

macos nsevent keydown

3
推荐指数
1
解决办法
2646
查看次数

标签 统计

keydown ×1

macos ×1

nsevent ×1