Cocoa 为什么NSView的滚轮方法中的deltaY在使用多点触控键盘时经常报告0.0?

Cocoa 为什么NSView的滚轮方法中的deltaY在使用多点触控键盘时经常报告0.0?,cocoa,macos,Cocoa,Macos,我有一个NSWindow包含子类NSOpenGLView。使用鼠标滚轮时,如果缓慢转动滚轮,则每个滚轮步数产生0.1。当使用macbook的多点触摸板并缓慢滚动时,我会得到许多deltaY为0.0的事件,偶尔会得到一个deltaY为0.3或0.4的事件。有人知道这是从哪里来的,以及如何关闭它吗?使用多点触控键盘在文本编辑器中滚动时,它似乎可以工作。您所说的“关闭”是什么意思?这些事件是跟踪触摸的自然结果,而不是滚动滚轮的整数增量,如果按增量正确缩放,则不会产生任何效果 如果您需要对滚动行为进行更

我有一个
NSWindow
包含子类
NSOpenGLView
。使用鼠标滚轮时,如果缓慢转动滚轮,则每个滚轮步数产生0.1。当使用macbook的多点触摸板并缓慢滚动时,我会得到许多deltaY为0.0的事件,偶尔会得到一个deltaY为0.3或0.4的事件。有人知道这是从哪里来的,以及如何关闭它吗?使用多点触控键盘在文本编辑器中滚动时,它似乎可以工作。

您所说的“关闭”是什么意思?这些事件是跟踪触摸的自然结果,而不是滚动滚轮的整数增量,如果按增量正确缩放,则不会产生任何效果


如果您需要对滚动行为进行更复杂的控制,OS X 10.7将添加一个新的
NSEventPhase
类型和
phase
属性,用于区分触摸滚动事件的不同部分(我希望0-delta事件对应于
NSEventPhaseStationary
).

问题在于,当我滚动一位时(即,多点触摸板上的两个手指移动一位),会出现0-delta事件。在文本编辑器或浏览器中,这会导致移动,但当我获得0-delta事件时,我不知道如何在视图中移动。啊,没错。为了更精确,请使用
scrollDeltaY
scrollDeltaX
(在Lion中也是新的)。但我有雪豹,我发现它在其他应用程序中也可以使用。那么雪豹有没有解决方案呢?根据quartz dev邮件列表,这些信息可以从底层的
CGEvent
中提取出来。