我试图用CGEventTapCreate等在Swift中捕捉按键。我想这样做,以便当我的孩子正在使用一个程序,Mac,我可以限制哪些键做某事。我理解我需要启用辅助技术来使CGEventTap工作。
我很难理解我需要在Swift中做什么来获得调用中的最终参数。本质上,我不理解石英事件文档的部分文档。
所描述的最后一个参数。
refcon:指向用户定义数据的指针.此指针被传递到回调参数中指定的回调函数中。
下面是我的代码,缺少了调用中的最后一个参数
@IBAction func interceptKeyboard(sender: NSButton) {
CGEventTapCreate(kCGSessionEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault, CGEventMask((kCGEventKeyDown) | (kCGEventKeyUp)), MyCallBack: kCGHIDEventTap, )
}
func MyCallBack(myLocation:CGEventTapLocation) -> Void{
//do Nowt
}发布于 2015-05-06 10:20:20
不久前,我认为当您查看CGEventTapCallback的类型时,您会发现它是一个CFunctionPointer:
typealias CGEventTapCallBack = CFunctionPointer<((CGEventTapProxy,
CGEventType, CGEvent!, UnsafeMutablePointer<Void>) -> Unmanaged<CGEvent>!)>目前您不能在Swift中创建这些函数,所以您必须使用objective,在那里创建一个函数,然后在Swift中调用一个等价的函数,请参见以下内容:
CFunctionPointer到Swift闭包的Objective包装
最后我把所有的东西都写在了目标-C.
https://stackoverflow.com/questions/26673329
复制相似问题