Как взаимодействовать со строкой, нарисованной с помощью UIStringDrawing/CoreText

Я пытаюсь работать над приложением, которое выделяет определенные ключевые слова. По этой причине я рассматриваю использование CoreText или UIStringDrawing для выделения этих слов (как выделено полужирным шрифтом/подчеркиванием/курсивом/цветом), поскольку UITextView, похоже, не имеет этих возможностей (и мне не повезло с CATextLayer) .

В любом случае я могу успешно манипулировать строкой и рисовать ее. (Т.е. я могу найти важные слова в строке и применить соответствующие черты).

Проблема, с которой я сталкиваюсь, заключается в том, что когда текст нарисован таким образом, с ним нельзя взаимодействовать напрямую. Учитывая, что пользователь сможет удалять/добавлять текст в рассматриваемое текстовое представление, это важно иметь.

На данный момент я засунул свои процедуры рисования в метод drawRect: подкласса UITextView (в основном просто для того, чтобы увидеть, что я могу делать то, что хочу). Есть ли в UITextView другой метод, который можно переопределить, чтобы он использовал мой код для отображения своей строки? Если нет, то как я могу сделать то, что я описал?

В качестве примера того, о чем я говорю, посмотрите, как приложение Notes находит и выделяет номера телефонов и адреса. Я не ищу номера телефонов или адреса, но суть ясна.


person Kevin    schedule 04.08.2010    source источник


Ответы (1)


После небольшого дополнительного чтения кажется, что вам нужно создать подкласс/переопределить МНОГО методов, чтобы создать собственное текстовое представление, текст которого вы можете рисовать. Документы Apple касаются этого, но не вдаются в подробности.

person Kevin    schedule 29.08.2010