Попытка увеличить размер UITextView
программно в зависимости от того, какой текст был введен в него. Проблема в том, что textViewDidChange:
распознает только новые символы строки, если я введу что-то после их ввода. Например, я пытаюсь ввести следующее:UITextView textViewDidChange: не распознает символ новой строки
Привет, мое имя - Джимми.
Это то, что я получу, если я печатаю это в NSLog в textViewDidChange:
Log: H
Log: Hi
Log: Hi,
Log: Hi, m
Log: Hi, my
Log: Hi, my (here goes the new line, but it's not recognized)
Log: Hi, my
n (it's recognized on this line, only after something is inputted after it).
Если я пытаюсь ввести два перевода строки, только первый из них будет признан и только после ввода ввода второй один. Является ли это своего рода ошибкой или я что-то упускаю, есть ли способ исправить это? Это использовалось для правильной работы на iOS 6.
EDIT - Чтобы уточнить проблему немного, я получаю уведомление о том, что текст был изменен, проблема заключается в том, что новый текст представляет собой пустой символ вместо новой строки ,
EDIT - Похоже, что в настоящее время единственным подходящим способом найти размер подгонки для UITextView является использование его метода sizeThatFits:
, передавая ему ограничивающий размер. Кроме того, если вы программно изменяете пропорции UITextView
, было бы разумно удалить из него любые маски с авторезистированием.
Проклятье! Правда, проблема связана с методом 'boundingRectWithSize: options: attributes: context:'. – Eugene
Да, просто попробовал это сам, этот метод не вернет увеличенный фрейм, если его строка пуста. Не уверен, что это ошибка или функция, но не может помешать сообщить об этом в качестве ошибки. –