0

トラックパッド イベントの読み取りに問題があります。トラックパッドで 1 つのファインダーの 1 回のタップとドラッグをキャッチする必要があります。また、それらを区別するために。単一のタップをキャッチすると、次のように機能します。

- (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:てみたところ、3 つのファインダー パン イベントが発生しました。

前もって感謝します。

4

1 に答える 1

0

に加えて使用したいと思うでしょう。mouseDragged NSGestureRecognizer

マウスドラッグ:

このメソッドのデフォルトの実装は何もしません。このメソッドを使用して、適切な方法でジェスチャ レコグナイザーの状態を更新します。

ジェスチャ レコグナイザーは、そのビュー (およびサブビュー) で発生するイベントを監視しますが、レスポンダー チェーン自体には関与しません。ジェスチャ レコグナイザーは、ビューよりも先にイベントを受け取ります。イベントがビューに伝達されるかどうかを制御するには、delaysPrimaryMouseButtonEvents プロパティを使用します。

併用NSGestureRecognizerすることで、お望みの効果が得られるはずです。

AppKit フレームワーク リファレンス> NSGestureRecognizer クラス リファレンス

于 2016-08-07T01:55:16.610 に答える