首页 > 解决方案 > 在`NSEventTap`中返回我自己创建的`CGEvent`

问题描述

CGEventTapCallBack 这里的文档说明:

CGEventRef 事件 传入事件。该事件归调用者所有,无需释放。

如果我想吃这个活动,然后返回,会发生什么NULL?我CFRelease应该自己做吗?

同样,如果我想用我自己创建的事件替换它,我应该CFRelease传入事件和CFRetain新创建的事件吗?

或者我是否受限于修改CGEvent就地接收的内容?确实是这样吗,有没有我可以使用热插拔的 API 调用?

标签: cgeventtapmanual-retain-release

解决方案


从(问题中的链接)的文档中复制CGEventTapCallBack

讨论

如果事件点击是一个活动过滤器,您的回调函数应返回以下之一:

  • 传入的(可能已修改的)事件。此事件被传回事件系统。

  • 新建的活动。新事件传回事件系统后,新事件将与原事件一起发布。

  • 如果要删除传入的事件,则为 NULL。

新事件将与原始事件一起发布。不要发布原始事件,也不要发布新事件。


推荐阅读