objective-c – 在Mac OS X上的触控板中知道手指的位置

objective-c – 在Mac OS X上的触控板中知道手指的位置,第1张

概述我正在开发一个Mac应用程序,我想知道手指在触控板上的位置. 有可能吗,如果是的话,怎么办? 您的视图需要设置为接受触摸([self setAcceptsTouchEvents:YES]).当你得到一个触摸事件,如-touchesBeganWithEvent:,你可以通过查看它的normalizedPosition(范围是[0.0,1.0] x [0.0,1.0]),根据它的deviceSize的 我正在开发一个Mac应用程序,我想知道手指在触控板上的位置.

有可能吗,如果是的话,怎么办?

解决方法 您的视图需要设置为接受触摸([self setAcceptstouchEvents:YES]).当你得到一个触摸事件,如-touchesBeganWithEvent:,你可以通过查看它的normalizedposition(范围是[0.0,1.0] x [0.0,1.0]),根据它的deviceSize的大点来确定手指的位置(有72磅/英寸).触控板的左下角被视为零起点.

所以,例如:

- (ID)initWithFrame:(NSRect)frameRect {   self = [super initWithFrame:frameRect];   if (!self) return nil;   /* You need to set this to receive any touch event messages. */   [self setAcceptstouchEvents:YES];   /* You only need to set this if you actually want resting touches.    * If you don't,a touch will "end" when it starts resting and    * "begin" again if it starts moving again. */   [self setWantsRestingtouches:YES]   return self;}/* One of many touch event handling methods. */- (voID)touchesBeganWithEvent:(NSEvent *)ev {   NSSet *touches = [ev touchesMatchingPhase:NStouchPhaseBegan inVIEw:self];   for (NStouch *touch in touches) {      /* Once you have a touch,getting the position is dead simple. */      NSPoint fraction = touch.normalizedposition;      NSSize whole = touch.deviceSize;      NSPoint wholeInches = {whole.wIDth / 72.0,whole.height / 72.0};      NSPoint pos = wholeInches;      pos.x *= fraction.x;      pos.y *= fraction.y;      NSLog(@"%s: Finger is touching %g inches right and %g inches up "            @"from lower left corner of trackpad.",__func__,pos.x,pos.y);   }}

(将此代码视为示例,而不是尝试和真实的,战斗的示例代码;我只是将其直接写入注释框中.)

总结

以上是内存溢出为你收集整理的objective-c – 在Mac OS X上的触控板中知道手指的位置全部内容,希望文章能够帮你解决objective-c – 在Mac OS X上的触控板中知道手指的位置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1252868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存