Frage

Ich habe eine einfache dokumentenbasierte Anwendung, die einfach eine Datei benutzerdefinierte XML erstellt. Es verwendet eine Gliederungsansicht des XML-Dokuments zu navigieren. Wenn ein Element in der Gliederungsansicht ausgewählt wird, eine benutzerdefinierte Ansicht wird als Unteransicht der Dokumentenansicht angezeigt, die der Benutzer in Daten eingeben kann. Auf einer der Ansichten hat eine NSTextField. Es hat seine „Erlaubt Undo-Flag“ gesetzt. I getestet, um sicherzustellen, das undoManager auf dem NSDocument aufgerufen wird, wenn die Bearbeitung abgeschlossen ist. So ist die Steuerung scheint durch den First Responder zu springen, wie es sollte.

In der IBAction Ich benutze das Action so ist es richtig im Menü angezeigt wird. Hier ist das Problem. Nicht nur ist die Action nicht im Menü angezeigt, aber Undo klicken nicht umkehrt die Maßnahmen auf der NSTextField aber die Aktion registriert, kurz bevor es. Gibt es etwas, das ich übersehen, wenn die Einrichtung undo mit NSTextField?

(IBAction) textFieldChanged: (id) sender {

... einiger Code hier ...

[[self undoManager] setActionName: @ "Change Text"];

}

Vielen Dank im Voraus, Rob

War es hilfreich?

Lösung

Ist das Textfeld im selben Fenster als Gliederungsansicht (dh das Hauptfenster des Dokuments)? Wenn nicht, müssen Sie einen Delegaten für die zusätzlichen Fenster setzen und reagiert auf - windowWillReturnUndoManager:. durch das Dokument der Undo-Manager Rückkehr

Weil Sie sagen -undoManager gegen das Dokument aufgerufen wird, ich bin die oben erraten ist nicht der Fall. Ich habe noch nie ein Textfeld nicht zu verwenden, das Dokument des Undo-Manager, wenn es in dem Dokument des Hauptfensters bekannt und ermöglicht Undo geprüft. Haben Sie etwas so einfach versucht, das Feld als zu löschen und neu zu erstellen? Manchmal IB hat einige seltsame Sachen ... komisch genug, neigen diese Probleme bis zu beschneiden, wenn rückgängig gemacht / redoing Änderungen im Interface Builder selbst. : -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top