ОК, поэтому у меня есть приложение с UITextView, которое я хочу продемонстрировать стандартным поведением отмены.Я просмотрел множество учебных пособий и ответов на этом сайте, а также Документы для разработчиков Apple, и я не могу понять, почему то, что я создал, не работает.
Всякий раз, когда изменяется UITextView (я использую нестандартная клавиатура с использованием свойства textView.inputView) нижеприведенному методу передается строка, представляющая собой новый текст, необходимый для представления текста:
- (void)setText:(NSString*)text{
NSString *oldText = [textView.text mutableCopy];
if (text != oldText) {
[undoManager registerUndoWithTarget:self selector:@selector(setText:) object:oldText];
textView.text = text;
}
}
, а затем для реализации отмены при нажатии кнопки UIB
[undoManager undo];
выполнено.
Я объявил undoManager в своем заголовочном файле, используя
NSUndoManager *undoManager;
, и синтезировал его в моей реализации, но когда я нажимаю UI-кнопку отмены, ничего не происходит, иsetText никогда не вызывается.Куда я иду не так?