Я пытаюсь создать функциональность Undo/Redo в одном из моих приложений, используя класс NSUndoManager и видя некоторые трудности с дизайном. В моем приложении, я просто один методUndo/Redo с использованием NSUndoManager в iPhone SDK
-(IBAction) addLastBall:(Ball *)ball
Таким образом, когда пользователь выбирает кнопку в интерфейсе, я добавить объект мяч в мой список массива. Однако у меня нет кнопки действий для удаления мяча, это дизайн рабочего процесса пользовательского интерфейса и не может быть изменен. Таким образом, чтобы реализовать отмены я назвал следующий фрагмент кода внутри метода addLastBall
[undoManager registerUndoWithTarget:self selector:@selector(removeBall:) object:ball];
После этого, метод removeBall вызывается с объектом шара, когда пользователь пытался выполнить отмену. Все хорошо сейчас. Но, я не уверен, как обрабатывать часть повтора сейчас, когда пользователь пытается выполнить повтор, я не уверен, какой метод будет вызван, потому что мне нужно добавить объект шара, который пользователь просто удалил, используя операцию отмены. Любые идеи были бы очень полезными.
Большое спасибо.
Это все еще так? Менеджер отката, кажется, ничего не делает при повторном выполнении. – ebi