在测试中发现,每一次触摸操作,会触发两次 hitTest:withEvent: 方法。 两次调用的 point 参数完全相同,时间戳也相同。 但是两次的调用栈不同。

最终,在 cocoa-dev 邮件列表中找到了对应话题的讨论, 大致是这样说的,系统可能会在两次调用中,做一些点击位置的微调。

但是在目前的情况下,并没有发现点击位置 point 的变化。 所以,在此处我对于重复调用的情况进行了过滤,以避免执行重复的点击逻辑。

参考: -hitTest:withEvent: called twice?