Wie registriere ich mit NSUndoManager Rückgängigmachungen mit Swift closures?
Ich versuche zu grok wie man @ benutNSLayoutManager
mit Swift Verschlüssen. Ich kann ein @ erfolgreich registrierundo
wie folgt
doThing();
undoManager?.registerUndoWithTarget(self, handler: { _ in
undoThing();
}
undoManager?.setActionName("do thing")
atürlich muss ich @ unterstützredo
was einem Rückgängigmachen eines Rückgängigmachens gleichkommt. Ich kann das machen
doThing();
undoManager?.registerUndoWithTarget(self, handler: { _ in
undoThing();
undoManager?.registerUndoWithTarget(self, handler: { _ in
doThing();
}
undoManager?.setActionName("do thing")
}
undoManager?.setActionName("do thing")
Aber jetzt muss ich ein Rückgängigmachen des Redo unterstützen ... hmmm .... ok:
doThing();
undoManager?.registerUndoWithTarget(self, handler: { _ in
undoThing();
undoManager?.registerUndoWithTarget(self, handler: { _ in
doThing();
undoManager?.registerUndoWithTarget(self, handler: { _ in
undoThing();
}
undoManager?.setActionName("do thing")
}
undoManager?.setActionName("do thing")
}
undoManager?.setActionName("do thing")
As können Sie seine "Schildkröten vollständig unten sehen." Wie entkomme ich diesem Wahnsinn? Das heißt, in all dem Beispielcode, den ich finden kann, verwenden die Leute die Selektorversion des Codes, um eine Methode zu registrieren, die sich selbst rückgängig machen kann - dies ist offensichtlich nicht mit der von mir verwendeten Verschlussmethode machbar ... Wie verwendet man den Verschluss? Version und erhalten unbegrenzt rückgängig machen / wiederholen?