我正在制作一个OSX应用程序(用于艺术项目),该应用程序在后台录制中运行并对用户输入作出反应。我知道如何在应用程序处于后台时跟踪按键操作,但我无法弄清楚如何模拟这些按键并在后台运行时更新应用程序。
首先在应用程序处于后台时跟踪按键的代码。这是在我的viewDidLoad函数 -
NSEvent.addGlobalMonitorForEventsMatchingMask(NSEventMask.KeyDownMask, handler: handleKeyDownEvent);
下面是相应的偶数监听器功能,我想也许我可以通过使用CGEventCreateKeyboardEvent来模拟按键,但它会更新焦点应用程序而不是后台应用程序 -
func handleKeyDownEvent(event:NSEvent!) {
//try to simulate a keyboard press that updates background app
println("key down is \(event.keyCode)");
var e:CGEventRef = CGEventCreateKeyboardEvent(nil, 7, true).takeRetainedValue();
CGEventPost(CGEventTapLocation(kCGHIDEventTap), e);
//CFRelease(e);how do I use CFRelease in swift?
}
任何想法将不胜感激,谢谢!