我的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/

10-10 14:20