OS X检测全局修改键、向上键和向下键



我想要一个回调,每当按下并释放{shift|cmd|ctrl|alt|capslok}时就会触发;也就是说,一个回调用于key down,另一个回调则用于key up。我之所以需要回调,是因为我还想要它们被按下和释放的确切时间。不幸的是,似乎没有一种简单的方法可以做到这一点,因为修改键的处理方式与普通键非常不同。我有

[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask
                                       handler:^(NSEvent *event){ [self handleKeyDown:event]; }];
[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyUpMask
                                       handler:^(NSEvent *event){ [self handleKeyUp:event]; }];

设置为立即处理普通密钥。如何对修改键执行此操作?此外,我希望这在全球范围内,包括在我的应用程序之外。

我认为您要查找的是事件NSFlagsChanged和相应的NSFlagsChangedMask

最新更新