有可能吗,如果是的话,怎么办?
解决方法 您的视图需要设置为接受触摸([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上的触控板中知道手指的位置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)