aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DomeKey/KeyboardSimulator.h3
-rw-r--r--DomeKey/KeyboardSimulator.m24
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