Я пытаюсь реализовать счетчик символов для UITextView, но обнаружил, что счетчик является неточным в следующей ситуации:
- Введите несколько символов текста, например "The"
- Нажмите возврат 25 раз
- Удерживая нажатой кнопку удаления, чтобы удалить текст (и удерживайте ее, пока курсор не достигнет вершины)
- Когда курсор достигает вершины (и после удаления «The»), счетчик все еще говорит, что UITextView содержит 3 символа
- Коснитесь кнопки удаления еще раз, чтобы счетчик сам исправился и сказал, что в нем 0 символов
В этой ситуации я вывел результаты счетчика и replaceText, и последний вывод выглядит следующим образом:
2009-08-06 15: 29: 14.357 Символы: 3
2009-08-06 15: 29: 14.369
Следовательно, кажется, что, когда таким образом массово удаляются большое количество новых строк (и, возможно, больших частей текста), textView: shouldChangeTextInRange: replaceText: не запускается в конце этой последовательности, что требует дополнительное нажатие кнопки удаления.
Мой код счетчика выглядит следующим образом:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSString* nextText = [textView.text stringByReplacingCharactersInRange:range withString:text];
int characterCount = [nextText length];
Любые идеи о том, как преодолеть это, чтобы счет был правильным в этой ситуации (или что я могу делать неправильно)?