То, что я сделал для удаления подпредставления из представления с помощью NSUndoManager, - это сохранение «стека» подпредставлений в NSMutableArray.Когда жест встряхивания обнаружен, и undoManager вызывается для отмены, я проверяю, если [self.undoManager isUndoing]
, и, если это так, я вызываю метод, который удаляет последнее подпредставление из этого массива из текущего представления.
В стороне от заметки, чтобы «Повторить» действие, вы должны снова вызвать prepareWithInvocationTarget
из отменяемого метода, чтобы он знал, как обрабатывать действие Повторить в случае, если пользователь хочетпеределывать.Для управления возвратом я сохраняю точку добавления подпредставления, и если пользователь хочет повторить, я добавляю его снова в том же месте.