2012-05-29 11 views
9

Ich habe ziemlich viel mit Gestenerkennung für iOS gemacht, aber ich arbeite jetzt in OS X, und ich bin verloren.Wie kann ich Gestenerkennung in OS X implementieren?

Ich möchte die Funktionalität wie im Finder duplizieren, wo Sie mit zwei Fingern wischen können (auf Ihrer Zaubermaus), um durch einen Verzeichnisbaum zurück/vorwärts zu gehen.

Ich habe eine NSWindow-basierte App, die Finder sehr ähnlich sieht. Ich habe zuvor Apps verwendet, mit denen Sie Ihre eigenen Gestenerkenner erstellen können, so dass ich weiß, dass es möglich ist, aber ich sehe keine Dokumentation darüber.

Was muss ich tun, um diese Gesten zu implementieren?

Antwort

3

Sie können über Handling Trackpad Events im Cocoa Event Handling Guide lesen. Das System kann einige vordefinierte Gesten erkennen (wischen, rotieren usw.) oder Sie können die rohen Berührungsereignisse hören, die wie normale Mausereignisse die NSResponder-Kette durchlaufen.

0

Sieht aus, als gäbe es auch eine Event Recognizer-Klasse in CZKit. https://github.com/CarterA/CZKit

Ich habe dies (noch) nicht verwendet, also YMMV.

+0

Konnte nichts zu Gesten in dieser Bibliothek finden. – eonist

+0

Ich habe es immer noch nicht benutzt, und aus der README kann ich mich nicht mal daran erinnern, was es tun soll, aber ich nehme an, dass ich mich auf die 'CZActionRecognizer' Klasse in diesem Verzeichnis bezog: https://github.com/CarterA/ CZKit/Baum/Meister/Bibliotheken/CZUI/Klassen Es sieht so aus, als ob es sich um eine Basisklasse für allgemeine Gesten/Aktionen handelt. Sieht so aus, als müssten Sie selbst alle tatsächlichen Recognizer schreiben, es sei denn, Sie möchten nur Klicks erkennen. Viel Glück! – livingtech

+0

Es ist ein allgemeiner Event-Handler für ein potenzielles Gesture-Event? Das ist die beste Interpretation, die ich machen kann. Könnte kontextbezogen für jemanden sein, den ich schätze. Daumen hoch für die Anstrengung zu erklären. :) Als Hinweis für andere, die Informationen zu Gestenereignissen suchen: Was ich gefunden habe, ist, dass es zwei Ansätze gibt. Eine besteht darin, Gestenmethoden im NSView zu überschreiben. Der andere und modernere Ansatz besteht darin, den Gestenerkennern "Selektoren" hinzuzufügen. Letzteres bietet eine bessere Kontrolle darüber, wann die Geste begonnen und beendet wurde usw. Obwohl das Gleiche durch Überschreiben erreicht werden kann. Einfach nicht so einfach. – eonist

2

Mac hat jetzt:

  • NSClickGestureRecognizer
  • NSMagnificationGestureRecognizer
  • NSPanGestureRecognizer
  • NSPressGestureRecognizer
  • NSRotationGestureRecognizer

Erhältlich in Storyboards zu.