addGlobalMonitorForEventsMatchingMask не работает

У меня проблемы с получением вспомогательного приложения (XCode в случае разработки) для захвата глобальных событий keyDown. Я видел много примеров кода, подобных приведенному ниже, но это не работает для меня на 10.9.4.

#import <AppKit/AppKit.h>
#import <Foundation/Foundation.h>

// 10.9+ only, see this url for compatibility:
// http://stackoverflow.com/questions/17693408/enable-access-for-assistive-devices-programmatically-on-10-9
BOOL checkAccessibility()
{
  NSDictionary* opts = @{(__bridge id)kAXTrustedCheckOptionPrompt: @YES};
  return AXIsProcessTrustedWithOptions((__bridge CFDictionaryRef)opts);
}

int main(int argc, const char * argv[])
{
  @autoreleasepool {
    if (checkAccessibility()) {
        NSLog(@"Accessibility Enabled");
    }
    else {
        NSLog(@"Accessibility Disabled");
    }

    NSLog(@"registering keydown mask");
    [NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask
                                           handler:^(NSEvent *event){
                                               NSLog(@"keydown: %@", event.characters);

                                           }];

      NSLog(@"entering run loop.");
      [[NSRunLoop currentRunLoop] run];
    }
    return 0;
}

Полученный результат:

2014-08-25 17:26:36.054 test[64725:303] Accessibility Enabled
2014-08-25 17:26:36.055 test[64725:303] registering keydown mask
2014-08-25 17:26:36.067 test[64725:303] entering run loop.

Оказавшись здесь, никакая другая регистрация не происходит, независимо от того, какие клавиши я нажимаю или какое приложение имеет фокус, когда я нажимаю их.

FWIW, я пытаюсь написать вспомогательное приложение, а не кейлоггер или другую злую вещь. Я рассмотрел другие случаи этого вопроса, но они, похоже, имеют дело либо с 1) приложением, не поддерживающим вспомогательную поддержку, либо 2) не получающим определенные «специальные» клавиши команд, которые требуются для CGEvents. Я не вижулюбой ключи, даже простые (он проходил через мой ввод этого поста, и ничего не было зарегистрировано). ТИА!

Ответы на вопрос(1)

Ваш ответ на вопрос