如何识别mac OS X上触控板上的一根手指拖动

时间:2016-08-06 20:48:05

标签: objective-c macos drag-and-drop multi-touch trackpad

我在阅读触控板事件时遇到了一些麻烦。我需要在触控板上单击并拖动一个取景器。并且还要区分它们。单击一下就是这样的:

- (void)mouseUp:(NSEvent*)theEvent
{
    CGFloat wdev2  = self.bounds.size.width / 2;
    CGFloat hdev2 = self.bounds.size.height / 2;

    NSPoint point = [theEvent locationInWindow];

    float x = (point.x - wdev2) / wdev2;
    float y = (point.y - hdev2) / hdev2;

    [_touchHandler handleMouseTouch:x And:y];
}

但如何识别阻力?我试过mouseDragged:,这给了我三个finder pan事件。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我相信除了 mouseDragged之外,您还想使用NSGestureRecognizer

<子> <强> 的mouseDragged

  

此方法的默认实现不执行任何操作 。用这个   以任何方式更新手势识别器状态的方法   是合适的。

     

手势识别器监视其视图中发生的事件(以及任何事件)   subviews)但不参与响应者链本身。该   手势识别器在任何视图之前接收事件。使用   delaysPrimaryMouseButtonEvents属性控制事件是否为   传播到视图。

NSGestureRecognizer一起使用,您应该可以获得所需的效果。

AppKit Framework Reference&gt; NSGestureRecognizer Class Reference