Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 使用CgEventTap在Swift中使用参数制造问题_Macos_Swift_Quartz Graphics - Fatal编程技术网

Macos 使用CgEventTap在Swift中使用参数制造问题

Macos 使用CgEventTap在Swift中使用参数制造问题,macos,swift,quartz-graphics,Macos,Swift,Quartz Graphics,我正在尝试使用Swift中的CGEventTapCreate等捕捉按键。我想这样做,当我的孩子在使用Mac电脑的程序时,我可以限制哪些键可以做什么。我很感激我需要使辅助技术能够让CGEventTap正常工作 我很难理解我需要在Swift中做些什么来获取调用中的最终参数。基本上,我不理解quartz事件的部分文档 具体而言,最终参数如下所述: refcon:指向用户定义数据的指针。此指针被传递到 回调参数中指定的回调函数 下面是我的代码,它缺少调用中的最后一个参数 @IBAction func i

我正在尝试使用Swift中的CGEventTapCreate等捕捉按键。我想这样做,当我的孩子在使用Mac电脑的程序时,我可以限制哪些键可以做什么。我很感激我需要使辅助技术能够让CGEventTap正常工作

我很难理解我需要在Swift中做些什么来获取调用中的最终参数。基本上,我不理解quartz事件的部分文档

具体而言,最终参数如下所述:

refcon:指向用户定义数据的指针。此指针被传递到 回调参数中指定的回调函数

下面是我的代码,它缺少调用中的最后一个参数

@IBAction func interceptKeyboard(sender: NSButton) {


    CGEventTapCreate(kCGSessionEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault, CGEventMask((kCGEventKeyDown) | (kCGEventKeyUp)), MyCallBack: kCGHIDEventTap, )

}

func MyCallBack(myLocation:CGEventTapLocation) -> Void{
    //do Nowt
}

前一段时间,但我认为当您查看CGEventTapCallback的类型时,您会发现它是一个CFunctionPointer:

typealias CGEventTapCallBack = CFunctionPointer<((CGEventTapProxy, 
CGEventType, CGEvent!, UnsafeMutablePointer<Void>) -> Unmanaged<CGEvent>!)>
typealias CGEventTapCallBack=CFunctionPointer非托管!)>
目前,您无法在Swift中创建这些函数,因此您必须深入objective-c,在那里创建一个函数,然后可以在Swift中调用等效函数,请参见此处:


我最终在Objective-C中写下了所有这些内容。

谢谢。早就应该给你打分了。比较一下。