我想在Mac应用程序中拦截键盘事件。
我希望用户启动一个“record”活动,它将复制keystone,然后启动一个“stop”活动。
可以通过cocoa的mac api实现吗?

最佳答案

查看nsEvent方法addLocalMonitorForEventsMatchingMask:处理程序:。这将允许您接收应用程序中发生的事件(尤其是按键事件),然后您可以使用该方法返回的按键执行任何所需的操作。下面是一个如何使用该方法的简单示例:

self.keystrokes = [NSMutableString string];
    [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask handler:^NSEvent* (NSEvent* event){
        NSString *keyPressed = event.charactersIgnoringModifiers;
        [self.keystrokes appendString:keyPressed];
        return event;
    }];

10-08 08:27