Синхронизация UITextView и NSUndoManager

Сначала я пытался искать, но не мог найти именно то, что мне нужно.

У меня есть один UITextView, и у меня есть кнопки, которые выполняют отмену и повтор действий в UITextViews NSUndoManager, так что эта часть работает, но здесь возникает проблема. Действия отмены отменяют все изменения, которые я создаю после того, как текстовое представление становится первым ответчиком, поэтому, чтобы иметь возможность иметь подробные действия отмены или повтора, которые отменяют или повторяют только последнее действие, а не все действия, выполняемые с момента, когда UITextView становится первым ответчиком, я должен иметь такой код:

- (void)textViewDidChange:(UITextView *)textView
{
    [textView resignFirstResponder];
    [textView becomeFirstResponder];
}

Но этот код не является решением, он работает, но я хотел бы синхронизировать действия, выполняемые в UITextView, так же, как код выше, но без отказа от UITextView в качестве первого ответчика.

Tnx за помощью.


person Amar Kulo    schedule 21.06.2011    source источник


Ответы (1)


Если я не ошибаюсь, каждое действие отмены/повтора группируется циклом событий. Если вы делаете много вещей в одном и том же цикле событий, все эти вещи образуют одно и то же действие.

person Nicolas S    schedule 21.06.2011
comment
Можно ли создавать новый цикл событий каждый раз при изменении текста? - person Amar Kulo; 21.06.2011
comment
Используете ли вы собственный textView NSUndoManager myUndoManager = [textView undoManager];? - person Nicolas S; 21.06.2011
comment
Да. Может быть, вместо этого попробовать NSInvocations?! - person Amar Kulo; 22.06.2011