我希望拦截Mac应用中的键盘事件。
我希望用户启动“记录”活动,该活动将复制基石,然后是“停止”活动。
这可以通过Cocoa的Mac API实现吗?
答案 0 :(得分:6)
看一下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;
}];
答案 1 :(得分:3)
要截取所有键盘输入(如果需要,也可以截取鼠标),请查看Quartz Events API。 This post有一些代码证明了API的用法。