下面的代码可以获取osx下的键盘输入,这个是全局的,也就是说在其他Application中输入键盘事件,这些事件也能被捕获。
CGEventRef myCallBack(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *userInfo)
{
UniCharCount actualStringLength = 0;
UniChar inputString[128];
CGEventKeyboardGetUnicodeString(event, 128, &actualStringLength, inputString);
NSString* inputedString = [[NSString alloc] initWithBytes:(const void*)inputString length:actualStringLength encoding:NSUTF8StringEncoding];
CGEventFlags flag = CGEventGetFlags(event);
NSLog(@"inputed string:%@, flags:%lld", inputedString, flag);
return event;
}
CFRunLoopRef theRL = CFRunLoopGetCurrent();
CFMachPortRef keyUpEventTap = CGEventTapCreate(kCGSessionEventTap, kCGHeadInsertEventTap ,kCGEventTapOptionListenOn