1

我有一个CGEventTap并且我想观察和处理所有系统鼠标点击事件。检测鼠标点击事件很容易,但我不希望系统的其余部分处理某些点击。我不知道怎么做。

系统只发送低级事件,如、mouseUp等。当我收到一个事件时,我不知道它是否是鼠标点击的一部分,可能是一个拖动事件。我必须等待以下事件——如果是,我点击一下。但是,如果我想自己处理点击并防止它进入事件队列的其余部分,我不能简单地窃取事件,因为前一个事件已经发送。mouseDownmouseDraggedmouseDownmouseUpmouseUpmouseDown

我以为我可以延迟mouseDown事件并在收到相应的 之后才发送它mouseUp,但感觉不对,我不想mouseDown仅仅因为我的应用程序而延迟所有系统事件。我错过了什么吗?

4

1 回答 1

0

你想的其实是对的。您必须将鼠标按下事件推迟等于鼠标双击速度的时间间隔,应该是大约 100-500 毫秒。例如,用户不会注意到 100 毫秒的延迟。理想情况下,您应该从 Mac OS X鼠标设置值中获得良好的用户体验。

于 2011-02-28T00:32:42.540 回答