知道 Mac OS X 下手指在触控板上的位置
我正在开发一个 Mac 应用程序,我想知道触摸时手指在触控板上的位置。
有可能吗?如果有,怎么可能?
I am developing an Mac application and I would like to know the position of the finger in the trackpad when there is a touch.
Is it something possible and if yes, how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您的视图需要设置为接受触摸(
[self setAcceptsTouchEvents:YES]
)。当您收到像-touchesBeganWithEvent:
这样的触摸事件时,您可以通过查看其normalizedPosition
来确定手指所在的位置(范围为 [0.0, 1.0] x [0.0, 1.0]),因为它的deviceSize
是大点(每英寸有 72 bp)。触控板的左下角被视为零原点。因此,例如:(
将此代码视为示例,而不是经过验证的真实示例代码;我只是将其直接写到注释框中。)
Your view needs to be set to accept touches (
[self setAcceptsTouchEvents:YES]
). When you get a touch event like-touchesBeganWithEvent:
, you can figure out where the finger lies by looking at itsnormalizedPosition
(range is [0.0, 1.0] x [0.0, 1.0]) in light of itsdeviceSize
in big points (there are 72 bp per inch). The lower-left corner of the trackpad is treated as the zero origin.So, for example:
(Treat this code as an illustration, not as tried and true, battle-worn sample code; I just wrote it directly into the comment box.)
Swift 3:
我编写了一个 NSTouch 扩展,它返回相对于 NSView 的触控板触摸位置:
这是我写的一篇关于 macOS 中的 GestureHUD 类的文章。还包含指向现成扩展的链接:http://eon. codes/blog/2017/03/15/Gesture-HUD/
示例:
Swift 3:
I've written an extension to NSTouch that returns the trackpad-touch pos, relative to an NSView:
Here is an article I wrote about my GestureHUD class in macOS. With link to a ready-made extension as well: http://eon.codes/blog/2017/03/15/Gesture-HUD/
Example:
我不知道是否有 ObjC 接口,但您可能会找到 C HID 类设备接口 有趣。
I don't know if there's an ObjC interface, but you might find the C HID Class Device Interface interesting.
在 Cocoa(Obj-C 级别)尝试以下操作 - 尽管请记住许多用户仍在使用鼠标控制。
http://developer.apple.com/ mac/library/documentation/cocoa/conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html
At a Cocoa (Obj-C level) try the following - although remember that many users are still using mouse control.
http://developer.apple.com/mac/library/documentation/cocoa/conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html