3

看来 scrollWheel: 必须是它,才能接收这些。不幸的是,触控板的滚动增量比鼠标高几个数量级,因此滚动速度非常快。因此,我需要区分它们,以便我可以使用适当的阻尼器。

文档令人困惑地注意到,虽然您通常通过检查 NSEvent 的子类型来执行此操作,但在 scrollWheel: 中特别是这不起作用。但他们没有说你应该做什么。实验告诉我,虽然触控板滚动确实没有正确键入为 NSTouchEventSubtype,但它们的类型鼠标滚轮滚动不同 - NSTabletPointEventSubtype 与 NSMouseEventSubtype。问题是,NSTabletPointEventSubtype 也是用于真正的平板电脑滚动事件的,其中的增量甚至更高。所以我也需要区分它们。

注意:类似的先前问题包括this,其中唯一的建议是基于未记录的 API 或其他具有类似 hack 的推断。有些人似乎建议您完全忽略 scrollWheel: 并手动跟踪触摸事件,但这似乎是很多冗余工作,可能会在未来的操作系统版本中中断。

4

1 回答 1

1

我相信[event hasPreciseScrollingDeltas]这就是你要找的。它在 OS X 10.7 中可用。

于 2013-01-20T03:43:07.463 回答