区分实际滚轮与触控板与平板电脑滚动事件

时间:2012-11-18 17:48:22

标签: macos cocoa mousewheel trackpad

似乎是scrollWheel:必须是它,接受这些。不幸的是,触控板的滚动增量比鼠标高几个数量级,因此滚动速度在精神上很高。我需要区分它们才能使用合适的减震器。

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

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

1 个答案:

答案 0 :(得分:0)

我相信[event hasPreciseScrollingDeltas]正是您所寻找的。它在OS X 10.7中可用。