Cgeventtap 在“NSEventTap”中返回我自己创建的“CGEvent”`

Cgeventtap 在“NSEventTap”中返回我自己创建的“CGEvent”`,cgeventtap,manual-retain-release,Cgeventtap,Manual Retain Release,CGEventTapCallBack的文档 国家: CGEventRef事件 传入事件。此事件由调用方所有, 你不需要释放它 如果我希望吃掉事件并返回NULL,会发生什么?我应该自己发布它吗 同样,如果我希望用我自己创建的事件替换它,我是否应该cf释放传入事件,并cf保留新创建的事件 或者,我是否必须就地修改收到的CGEvent的内容?如果确实是这样,是否有任何API调用可以使用热插拔?复制自CGEventTapCallBack的文档(问题中的链接): 讨论 如果事件点击是活动筛选器,则回调函数

CGEventTapCallBack的文档
国家:

CGEventRef事件 传入事件。此事件由调用方所有, 你不需要释放它

如果我希望吃掉事件并返回
NULL
,会发生什么?我应该自己发布它吗

同样,如果我希望用我自己创建的事件替换它,我是否应该
cf释放
传入事件,并
cf保留
新创建的事件


或者,我是否必须就地修改收到的
CGEvent
的内容?如果确实是这样,是否有任何API调用可以使用热插拔?

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

讨论

如果事件点击是活动筛选器,则回调函数应返回以下内容之一:

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

  • 新构造的事件。新事件传回事件系统后,新事件将与原始事件一起发布

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

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