【问题标题】:How to get pointing device's coordinate on mac trackpad?如何在mac触控板上获取指点设备的坐标?
【发布时间】:2010-09-24 08:30:53
【问题描述】:

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

我已经迷上了在滑动时触发的 swipeWithEvent。在该 NSEvent 中有一个方法 deltaX 报告移动的变化。还有一个看起来很有希望的 absoluteX 方法,但除了以下断言失败之外,我无法让它返回任何内容:

发送到事件“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?

【问题讨论】:

  • 如果可以的话那就太好了。

标签: cocoa macos trackpad


【解决方案1】:

来自-[NSEvent absoluteX] 的文档:

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

我认为,如果您需要在非平板设备上获取相同的信息,您需要告知 Apple(通过错误报告器或 DTS)您的要求,因为 API 目前不支持它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 2012-07-13
    • 2012-03-24
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 2016-05-29
    相关资源
    最近更新 更多