У меня есть UITextView, который правильно отображает URL-адреса таким образом:
contentView.editable = NO;
contentView.dataDetectorTypes = UIDataDetectorTypeAll;
Моя цель - сделать так, чтобы вы по-прежнему могли нажимать на это текстовое представление, чтобы редактировать его текст в определенном месте (как встроенное приложение Notes). Таким образом, если вы нажмете на ссылку, он запустит браузер, но если вы нажмете где-нибудь еще, он начнет редактировать в точке, где вы нажали. Должно быть легко, правда?
Не так далеко. Создание подкласса UITextView и переопределение touchesEnded дает вам возможность установить для редактирования значение YES. Но когда вы это делаете, текстовое представление не запоминает, где вы нажали (selectedRange не устанавливается должным образом), поэтому редактирование всегда начинается внизу текстового представления.
Я даже пытался использовать недокументированный метод setSelectionWithPoint, но он не работает так, как вы ожидаете.
Может кто-нибудь придумать, как добиться правильного редактирования UITextView с помощью нажатия с помощью вставляемых ссылок?