我的Run Loop Observer编写如下:
void observerCallback(CFRunLoopObserverRef observer,
CFRunLoopActivity activity, void* info)
{
println("%u", activity);
}
//-----------------------------
void InstallObserver()
{
CFRunLoopObserverRef myObserver = NULL;
int myActivities = kCFRunLoopEntry;
myObserver = CFRunLoopObserverCreate(NULL, myActivities, YES,
/* repeat */ 0, &observerCallback, NULL);
if (myObserver)
{
CFRunLoopAddObserver(CFRunLoopGetCurrent(), myObserver,
kCFRunLoopCommonModes);
}
}
每次我按一下应用程序中的任何键时,observatorCallback都会被调用4次。
问题是:
如何在observerCallback中获取键代码?
谢谢。
最佳答案
根据您对问题的评论,您需要一个本地事件监视器,又名:
+ [NSEvent addLocalMonitorForEventsMatchingMask:handler:]
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSEvent_Class/Reference/Reference.html#//apple_ref/occ/clm/NSEvent/addLocalMonitorForEventsMatchingMask:handler:
关于objective-c - 通过在RunLoop中添加观察者来监视键盘事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11446951/