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