diff options
| -rw-r--r-- | DomeKey/KeyboardSimulator.h | 3 | ||||
| -rw-r--r-- | DomeKey/KeyboardSimulator.m | 24 | 
2 files changed, 27 insertions, 0 deletions
| diff --git a/DomeKey/KeyboardSimulator.h b/DomeKey/KeyboardSimulator.h index bdd62b5..dc471d3 100644 --- a/DomeKey/KeyboardSimulator.h +++ b/DomeKey/KeyboardSimulator.h @@ -10,4 +10,7 @@  @interface KeyboardSimulator : NSObject ++ (CGKeyCode)keyCodeForChar:(NSString *)aChar; ++ (void)simpleKeyPressWithKey:(NSString *)aChar; +  @end diff --git a/DomeKey/KeyboardSimulator.m b/DomeKey/KeyboardSimulator.m index f33601a..2fa808d 100644 --- a/DomeKey/KeyboardSimulator.m +++ b/DomeKey/KeyboardSimulator.m @@ -10,4 +10,28 @@  @implementation KeyboardSimulator ++ (CGKeyCode)keyCodeForChar:(NSString *)aChar +{ +    return (CGKeyCode)0; +} + ++ (void)simpleKeyPressWithKey:(NSString *)aChar +{ +    CGEventSourceRef source = CGEventSourceCreate( +        kCGEventSourceStateHIDSystemState +    ); + +    CGKeyCode key_code = [self keyCodeForChar:aChar]; + +    CGEventRef key_down = CGEventCreateKeyboardEvent(source, key_code, true); +    CGEventRef key_up = CGEventCreateKeyboardEvent(source, key_code, false); + +    CGEventPost(kCGHIDEventTap, key_down); +    CGEventPost(kCGHIDEventTap, key_up); + +    CFRelease(key_down); +    CFRelease(key_up); +    CFRelease(source); +} +  @end | 
