2009-10-07 3 views
1

У меня есть UITextView, что правильно отображения URL-адресов таким образом:Как вы создаете UITextView, который поддерживает ссылки URL и может быть отредактирован?

contentView.editable = NO; 
contentView.dataDetectorTypes = UIDataDetectorTypeAll; 

Моя цель состоит в том, чтобы сделать это, так что вы все еще можете нажать на этот текст зрения для того, чтобы изменить его текст в определенном месте (так же, как встроенный -в приложении Notes). Таким образом, если вы нажмете ссылку, она запустит браузер, но если вы нажмете куда-нибудь еще, он начнет редактирование в том месте, где вы прослушали. Должно быть легко, не так ли?

Пока что. Подклассификация UITextView и переопределения touchEnded дает вам возможность установить для редактирования значение YES. Но когда вы это делаете, текстовое представление не запоминает, где вы постучали (выбранный диапазон не устанавливается должным образом), поэтому редактирование всегда начинается в нижней части текстового представления.

Я даже пытался использовать недокументированный метод setSelectionWithPoint, но он не ведет себя так, как вы ожидали.

Может ли кто-нибудь подумать о каком-либо способе достижения правильного соответствия UITextView с помощью tappable-ссылок?

ответ

0

Возможно, вы можете попробовать либо сохранить UITouch, либо UIEvent, либо скопировать копии с использованием пользовательских классов, имеющих одинаковые подписи классов, а затем повторно отправить события touchesBegan: и touchesEnded: после установки для редактирования YES.

+0

Правильно, я пробовал это, но, к сожалению, UITextView, похоже, делает большую часть своей сенсорной обработки. Повторная отправка штриховBegan: и touchesEnded: события для суперкласса моего пользовательского UITextView не приводят к желаемому результату, а именно моделированию нажатия UITextView. Копайте в UITextView немного, похоже, что могут быть события mouseUp и mouseDown с более низким уровнем. Я не уверен, как получить к ним доступ. – 2009-10-07 21:51:28

Смежные вопросы