如何在mac触控板上获取指点设备的坐标?

时间:2010-09-24 08:30:54

标签: cocoa macos trackpad

当用户在触控板上做手势时,我想得到手指的位置。

我已经迷上了在滑动时触发的swipeWithEvent。在那个NSEvent中,有一个方法deltaX报告运动的变化。还有一个看起来很有希望的绝对X方法,但除了以下断言失败之外我无法返回它:

发送到事件的消息无效“NSEvent:type = Swipe loc =(394,335)time = 3893.8 flags = 0x100 win = 0x10022fdc0 winNum = 586 ctxt = 0x0 deltaX = -1.000000 deltaY = 0.000000”

错误消息中的'loc'值会随着时间的推移而改变一点,但据我所知,它不是正确的值,因为更改太小。

那么,我如何才能在触控板上正确使用NSEvent的absoluteX?

1 个答案:

答案 0 :(得分:2)

来自-[NSEvent absoluteX]的文档:

  

要使坐标有效,   接收器应代表一个事件   由平板电脑指点设备生成   (否则返回0)。这种方法   仅对带有a的鼠标事件有效   NSTabletPointEventSubtype的子类型   以及NSTabletPoint类型的事件

我认为如果你需要在非平板设备上获得相同的信息,你需要告诉Apple(通过bug报告者或DTS)你的要求,因为API目前不支持它。