Symuluj naciskanie klawiszy dla skrótów klawiaturowych

Muszę symulować naciśnięcia klawiszy w OSX. Oto jak to robię:

-(void)execute {
    CGEventSourceRef sourceRef =
    CGEventSourceCreate(kCGEventSourceStateHIDSystemState);

    CGEventRef keyPress = CGEventCreateKeyboardEvent (sourceRef, (CGKeyCode)keyCode, true);
    CGEventRef keyUnpress = CGEventCreateKeyboardEvent (sourceRef, (CGKeyCode)keyCode, false);

    CGEventSetFlags(keyPress, modifierFlags);
    CGEventPost(kCGHIDEventTap, keyPress);

    //unpressing the acualkey
    CGEventPost(kCGHIDEventTap, keyUnpress);

    CFRelease(keyPress);
    CFRelease(keyUnpress);
    CFRelease(sourceRef);
}

Działa dobrze dla każdego skrótu klawiszowego lub prostych naciśnięć klawiszy w dowolnej aplikacji, ale nie działa na przykład dla skrótów systemowychopcja + spacja aby uruchomić Spotlight lubcmd + shift + 4 zrobić zrzut ekranu lubctrl + ` otworzyć okno iTerm2.

Próbowałem zmienić źródło zdarzenia i lokalizację, w której publikować zdarzenie, nie pomaga. Jakieś pomysły?

questionAnswers(4)

yourAnswerToTheQuestion