2016-08-06 41 views
0

Ich habe einige Probleme beim Lesen von Trackpad-Ereignissen. Ich muss ein einziges Tippen und Ziehen eines Finders auf dem Trackpad abfangen. Und auch, um sie zu unterscheiden. Das Abfangen eines einzelnen Tap funktioniert wie folgt:Wie erkenne ich einen Finger ziehen auf Trackpad auf Mac OS X

- (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]; 
} 

aber wie erkennt man einen Widerstand? Ich habe versucht mouseDragged: und das gibt mir drei Finder Pan Event.

Vielen Dank im Voraus.

Antwort

0

Ich glaube, Sie wollen mouseDraggedzusätzlich zuNSGestureRecognizer verwenden.

mouseDragged:

Die Standardimplementierung dieser Methode nichts tut. Verwenden Sie diese -Methode, um den Status Ihrer Gestenerkennung auf jede Art und Weise zu aktualisieren, die angemessen ist.

Ein Gestenerkenner überwacht Ereignisse, die in seiner Sicht auftreten (und alle Untersichten ), nimmt jedoch nicht an der Antwortkette selbst teil. Der Gestenerkenner empfängt Ereignisse vor allen Ansichten. Verwenden Sie die delaysPrimaryMouseButtonEvents-Eigenschaft, um zu steuern, ob das Ereignis an die Ansicht weitergegeben wird.

Verwendet mit NSGestureRecognizer sollten Sie in der Lage sein, Ihren gewünschten Effekt zu bekommen.

AppKit Framework Reference>NSGestureRecognizer Class Reference

+0

Einige Versuche ich mit denen taten, aber leider konnte nicht das gewünschte Verhalten bekommen. Und der Punkt ist, dass es mit Maus funktioniert (klicken, klicken + ziehen) wie erwartet, aber nicht mit Trackpad .. –