【问题标题】:How to recognize one finger drag on trackpad on mac OS X如何识别 Mac OS X 触控板上的一根手指拖动
【发布时间】:2016-08-06 20:48:04
【问题描述】:

我在读取触控板事件时遇到了一些问题。我需要在触控板上单击并拖动一个查找器。并且还要区分它们。抓住一个水龙头是这样工作的:

- (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 事件。

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    我相信你会想要使用mouseDragged 除了 NSGestureRecognizer

    鼠标拖拽

    这个方法的默认实现什么都不做。用这个 以任何方式更新手势识别器状态的方法 合适。

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

    NSGestureRecognizer 一起使用应该可以得到你想要的效果。

    AppKit Framework Reference > NSGestureRecognizer Class Reference

    【讨论】:

    • 我对这些进行了一些实验,但不幸的是,无法获得所需的行为。关键是它可以按预期使用鼠标(单击,单击+拖动),但不能使用触控板..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    相关资源
    最近更新 更多