Из-за травмы я использую диктовку на MacOS:
Как видно из скриншота, я могу переключать его с помощью сочетания клавиш.
Я хочу отключить его от кода (желательно ObjC).
Я могу вручную добавить события:
// Assumes CTRL OPT CMD Space toggles dictation
void toggle_dictation()
{
// NOTE: To return created event in tap-callback:
// cgEvent = [my_nsEvent CGEvent];
// CFRetain(cgEvent);
//unsigned short keyCode_SPACE = 49;
NSEvent* down_event = [NSEvent keyEventWithType: NSEventTypeKeyDown
location: NSZeroPoint
modifierFlags: NSEventModifierFlagControl | NSEventModifierFlagOption | NSEventModifierFlagCommand
timestamp: 0.0
windowNumber: 0
context: nil
characters: @" "
charactersIgnoringModifiers: @" "
isARepeat: false
keyCode: 0 /* keyCode_SPACE */ ];
NSEvent* up_event = [NSEvent keyEventWithType: NSEventTypeKeyUp
location: NSZeroPoint
modifierFlags: 0
timestamp: 0.0
windowNumber: 0
context: nil
characters: @" "
charactersIgnoringModifiers: @" "
isARepeat: false
keyCode: 0 /* keyCode_SPACE */ ];
CGEventPost(kCGHIDEventTap, [down_event CGEvent]);
CGEventPost(kCGHIDEventTap, [up_event CGEvent]);
}
... но это неуклюже, поскольку это зависитна выбранном мной ярлыке.
Есть ли способ сделать это с помощью вызова API?