【发布时间】:2011-02-15 16:23:27
【问题描述】:
我有一个CGEventTap,我想观察和处理所有系统鼠标点击事件。检测鼠标点击事件很容易,但我不希望系统的其余部分处理某些点击。我不知道怎么做。
系统只发送mouseUp、mouseDown、mouseDragged等低级事件。当我收到mouseDown 事件时,我不知道它是否是鼠标点击的一部分,可能是拖动事件。我必须等待以下事件——如果是mouseUp,我点击一下。但是,如果我想自己处理点击并阻止它进入事件队列的其余部分,我不能简单地窃取 mouseUp 事件,因为之前的 mouseDown 已经发送。
我以为我可以延迟mouseDown事件,然后在收到相应的mouseUp后才发送,但感觉不对,我不想因为我的应用程序而延迟所有系统mouseDown事件。我错过了什么吗?
【问题讨论】:
-
为什么你认为你可能会遗漏一些东西?是什么让你认为你应该能够做到这一点?
-
我认为也许有更简单的方法来监控和更改所有系统鼠标事件。我可以通过这种方式很好地观察和过滤关键事件,这似乎很奇怪,用简单的鼠标点击是不可能的。
标签: cocoa core-graphics quartz-graphics cgeventtap