Заменить часть атрибута UITextView

Я пытаюсь создать текстовое представление в своем приложении. Он просто выделяет синтаксис и отображает выделенный текст в UITextView через AttributedText. Вот код:

NSMutableString *ms = [[NSMutableString alloc] initWithString:self.text]; [ms replaceCharactersInRange:range withString:text]; self.attributedText = [syntaxHighlighter highlight:ms inRange:[self visibleRangeOfText]]; [self setSelectedRange:NSMakeRange(range.location + text.length, 0)]; 

Проблема заключается в больших текстах, она должна заменить весь текст в третьей строке. Есть ли способ просто заменить часть текста без замены всего содержимого?

UITextView реализует протокол UITextInput .

Если вы хотите заменить часть текста без замены всего содержимого, вы можете использовать метод:

 - (void)replaceRange:(UITextRange *)range withText:(NSString *)text; 

Но в некоторых особых случаях (при вызове из другого класса) этот метод неэффективен. Я не знаю, почему так я использовал:

 double delayInSeconds = 0.2; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ //call method to change text of textView here... }); 

Удачи!

  • Читайте слово за словом UITextView
  • ios экран мерцает после поворота лупы
  • как изменить размер UIScrollView в соответствии с содержимым дочерних элементов UITextViews
  • Текстовые атрибуты, которые не отображаются в богатом UITextView (iOS 6)
  • Текст и изображение вместе в компоненте переполнения столбца с фиксированной шириной в iOS
  • Как создать несколько CheckBox программно
  • Проблема с прокруткой памяти UITextView на iOS7
  • Использовать анимацию для прокрутки нижней части textView
  • Есть ли универсальное решение для прокрутки UITextView и UITextField над клавиатурой на экране
  • Обнаружение номера телефона UITextView приводит к сбою UITableView
  • Автоматическое изменение размера UITextView в UIScrollView
  • Давайте будем гением компьютера.