我已经开始收听全球keyDown
事件。有没有办法从该事件来自哪个应用程序获取信息?
处理程序接收NSNotification
实例并NSEvent
成为其中的一部分。我能以某种方式从这些对象中提取这些信息吗?
听力片段:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent *event){
NSLog(@"global keyDown %@", event);
[[NSNotificationCenter defaultCenter] postNotificationName:kKeyPressed
object:event];
}];
观察员:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyEventHandler:)
name:kKeyPressed
object:nil];
更新
全局按键不会从任何特定应用程序发送。我真正需要的是在事件处理程序中检查当前活动的应用程序:
[[NSWorkspace sharedWorkspace] activeApplication]
这会返回NSDictionary
我需要的信息。