cgeventtap - 在`NSEventTap`中返回我自己创建的`CGEvent`
问题描述
CGEventTapCallBack
这里的文档说明:
CGEventRef 事件 传入事件。该事件归调用者所有,无需释放。
如果我想吃这个活动,然后返回,会发生什么NULL
?我CFRelease
应该自己做吗?
同样,如果我想用我自己创建的事件替换它,我应该CFRelease
传入事件和CFRetain
新创建的事件吗?
或者我是否受限于修改CGEvent
就地接收的内容?确实是这样吗,有没有我可以使用热插拔的 API 调用?
解决方案
从(问题中的链接)的文档中复制CGEventTapCallBack
:
讨论
如果事件点击是一个活动过滤器,您的回调函数应返回以下之一:
传入的(可能已修改的)事件。此事件被传回事件系统。
新建的活动。新事件传回事件系统后,新事件将与原事件一起发布。
如果要删除传入的事件,则为 NULL。
新事件将与原始事件一起发布。不要发布原始事件,也不要发布新事件。