访问键盘API

时间:2012-06-05 00:23:57

标签: objective-c xcode macos cocoa

我希望拦截Mac应用中的键盘事件。

我希望用户启动“记录”活动,该活动将复制基石,然后是“停止”活动。

这可以通过Cocoa的Mac API实现吗?

2 个答案:

答案 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 APIThis post有一些代码证明了API的用法。