Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Catch Capslock压力机在可可粉中的应用_Macos_Cocoa_Event Handling_Keyboard Shortcuts - Fatal编程技术网

Macos Catch Capslock压力机在可可粉中的应用

Macos Catch Capslock压力机在可可粉中的应用,macos,cocoa,event-handling,keyboard-shortcuts,Macos,Cocoa,Event Handling,Keyboard Shortcuts,我正在开发一个应用程序,它使用了Spakovski的great。我引用这篇文章是想问,是否有一种方法可以像Shpakovski在他的存储库中那样注册Capslock的快捷方式 似乎我无法将0xffff(显示为Capslock)注册为有效的快捷方式。即使我将其与修改器关键点组合。我还想在切换系统Capslock功能之前先了解一下媒体 我知道我可以听所有的击键,当它发生时只捕捉Capslock,但我想避免这种行为,因为我觉得它可能不安全,而且还会降低系统的整体性能 编辑:我已经看了一些Windows

我正在开发一个应用程序,它使用了Spakovski的great。我引用这篇文章是想问,是否有一种方法可以像Shpakovski在他的存储库中那样注册Capslock的快捷方式

似乎我无法将0xffff(显示为Capslock)注册为有效的快捷方式。即使我将其与修改器关键点组合。我还想在切换系统Capslock功能之前先了解一下媒体

我知道我可以听所有的击键,当它发生时只捕捉Capslock,但我想避免这种行为,因为我觉得它可能不安全,而且还会降低系统的整体性能

<>编辑:我已经看了一些Windows的C++ c/c库,它实现了这个特性。它们似乎不断地覆盖系统的Capslock标志,我觉得这很奇怪。我这里基本上有两个问题:

1。如何捕捉Capslock按键,而无需一直使用按键侦听器


2。如何在不触发系统Capslock功能的情况下执行此操作。

一种可能是覆盖
应用程序中的
发送事件:
。发件人:

虽然您可能希望直接调用sendEvent,但很少直接调用 重写此方法以对每个事件执行某些操作。发送事件: 消息从主事件循环(run方法)发送。 sendEvent:是将事件分派到相应的 响应程序NSApp处理应用程序事件,NSWindow对象 事件记录中指示的处理与窗口相关的事件和鼠标 并将关键事件转发到相应的NSWindow对象,以便 进一步派遣

您可以评估当前事件是否按下了修改器键,并对其进行操作

编辑:


可用于后台处理。如果这导致拒绝,我不知道。

如果我这样做,我是否会因为每次击键都会查看而面临被拒绝的潜在“键盘记录者”的危险?如果应用程序不在焦点/后台,是否也会调用此函数?我认为这不会给App Store带来问题。子类化sendEvent:本身并不禁止。不过,只有当你的应用程序具有focus时,它才会被调用。我被拒绝的原因远比这少不过,我需要一个在应用程序处于后台时可以工作的实现:(我已经用事件点击编辑了关于后台处理的答案。谢谢Volker!我会仔细看一看,如果有效,我会接受你的答案!