First Responder Erklärung Notwendig
Fragte ich eine Frage, die schon früher hier in Bezug auf die Nutzung von First-Responder - und bekam eine Antwort hier:
Probleme mit der First Responder
Würde jemand Verstand, dass Sie mir ein "dummies" - version dieses? Wird neu in Cocoa, ich weiß wirklich nicht, wo beginnen mit einer dieser Methoden. Ich vergebe schnell Antworten
Zach
Du musst angemeldet sein, um einen Kommentar abzugeben.
First Responder ist speziell diese.
Was du fragst nach, obwohl, ist Ziel-Aktion. Sie haben ein UI-Objekt (Schaltfläche, Menüpunkt), die Sie benötigen, um dazu führen, dass mehrere Dinge geschehen, aber das UI-Objekt sendet nur eine Aktion.
Daher die Lösung: Machen Sie die Aktion tun mehrere Dinge.
Haken Sie die UI-Objekte bis zu einer action-Methode implementieren Sie in Ihre controller-Objekt (in deinem Fall das Dokument). In dieser Methode alles tun, die Dinge, die Taste muss zu verursachen.
Den Unterklassen Lösung ist im Grunde das gleiche, nur das anstelle der Haken die UI-Objekt zu Ihrem Dokument, das Sie es Haken bis zu der font-manager, aber auch der font-manager eine Instanz einer Unterklasse von NSFontManager, die Sie erstellen, anstatt eine Instanz von NSFontManager direkt. In der Unterklasse überschreiben Sie
addFontTrait:
und fügen Sie die anderen Verhalten, die in Ihrer Umsetzung. Entweder am Anfang oder am Ende der Methode, die Sie senden[super addFontTrait:sender]
aufrufen NSFontManager der Umsetzung, so dass die ursprüngliche Umsetzung getan wird.Langer Absatz, aber es ist wirklich nicht viel mehr Arbeit: Der Unterschied ist nur die Unterklasse und die Instanz eine Instanz der Unterklasse.
Du vorher gesagt hast, dass "die Apple-Dokumentation ist unglaublich vage", aber es ist wirklich nicht. Es passiert einfach zu viel, und vielleicht haben Sie nicht gesucht, an der richtigen Dokumente.
Dies sind die Dokumente, die Sie brauchen, um zu Lesen, von Anfang bis Ende, und in der Reihenfolge:
EDIT: Diese Liste ist für Xcode 3. Ich stellte eine aktualisierte (für Xcode 4) version dieser Liste eine andere Antwort.
Gibt es auch eine Instrumente Benutzerhandbuch, aber, leider, dass man ist vage—oder, um genauer zu sein, unvollständig. Unterlässt es eine Menge nützlicher Informationen, wie Hinweise zum Einsatz von Instrumenten Zombies Vorlage zum Debuggen von Abstürzen. Es ist ein high-level überblick, nichts mehr.
Auch, bookmark diese:
Das ist viel zu Lesen, aber es wird Ihnen sagen, alles, was Sie wissen müssen, und damit ist ungefähr die Reihenfolge, die Sie benötigen zu kennen.
Die andere Antwort sagt, dass Sie haben zwei Optionen:
Erste: ersetzen Sie die Handlung, durch die einer von Ihnen erstellten und implementieren Sie dann die Funktion von der original-version selbst. In diesem Fall genügt es, rufen Sie die entsprechende Methode der
NSFontManager
. Das heißt, Sie fügen der ursprünglichen Funktionalität, um Ihre eigene Implementierung der Methode. Auf diese Weise, werden beide Aktionen ausgeführt.Zweite: eine Unterklasse der Klasse, wo die original-Funktionalität implementiert ist, und fügen Sie Ihre Implementierung durch überladen der Methode, die aufgerufen wird
-addFontTrait
. Diese Weise, Ihr code wird ausgeführt "neben". Diese Frage könnte Ihnen helfen, zu finden die richtige Umsetzung.So, die Essenz ist, dass Sie können entweder fügen Sie die original-Funktionen zu Ihrer Umsetzung oder die andere Weise herum. In diesem Fall würde ich versuchen die erste.