【问题标题】:Returning a `CGEvent` of my own creation in `NSEventTap`在`NSEventTap`中返回我自己创建的`CGEvent`
【发布时间】:2019-11-07 19:22:34
【问题描述】:

CGEventTapCallBack 的文档 here 状态:

CGEventRef 事件 传入事件。此事件归调用者所有, 而且你不需要释放它。

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

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

或者我是否必须就地修改收到的CGEvent 的内容?真的是这样吗,有什么 API 调用我可以使用热插拔?

【问题讨论】:

    标签: cgeventtap manual-retain-release


    【解决方案1】:

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

    讨论

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

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

    • 一个新构建的事件。新事件传回事件系统后,新事件将与原事件一起释放。

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

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

    【讨论】:

      猜你喜欢
      • 2018-12-06
      • 2017-04-05
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      相关资源
      最近更新 更多