我正在寻找拦截 Mac 应用程序中的键盘事件。
我希望用户启动一个“记录”活动,该活动将复制基石,然后是一个“停止”活动。
这可以通过 Cocoa 的 Mac API 实现吗?
我正在寻找拦截 Mac 应用程序中的键盘事件。
我希望用户启动一个“记录”活动,该活动将复制基石,然后是一个“停止”活动。
这可以通过 Cocoa 的 Mac API 实现吗?
看看 NSEvent 方法 addLocalMonitorForEventsMatchingMask:handler:。这将允许您接收在您的应用程序中发生的事件(特别是在您的情况下的 keyDown 事件),然后您可以使用该方法返回的击键来做任何您想做的事情。这是一个如何使用该方法的简单示例:
self.keystrokes = [NSMutableString string];
[NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask handler:^NSEvent* (NSEvent* event){
NSString *keyPressed = event.charactersIgnoringModifiers;
[self.keystrokes appendString:keyPressed];
return event;
}];
要拦截所有键盘输入(如果需要,还可以拦截鼠标),请查看Quartz Events API。这篇文章有一些代码演示了 API 的用法。