У меня есть UITextView
, который позволяет выбирать слова текста, нажимая его. Если оно постукивается, слово выделяется цветом, изменяя атрибут NSForegroundColor
. Повторное нажатие на него отменяет его, меняя цвет на цвет текста.Получить цвет измененных слов атрибутивной строки
Теперь мне нужно будет знать все выбранные слова в UITextView
.
Первой идеей было удалить все, что является особым символом, и разделить текст в пространстве. Затем проверьте, соответствует ли атрибут цвета выбранному/выделенному цвету каждого отдельного слова. Но атрибутная строка не позволяет разбивать на символ или удалять компоненты. Также нет NSAttributedString
.
Вторая идея состояла в том, чтобы сохранить диапазоны выделенных частей в массиве и перебрать их, чтобы получить выделенные части. Но для меня это кажется слишком сложным, тем более, что мне нужен правильный порядок слов по мере их появления, который не гарантируется с помощью массива, добавьте/удалите на каждом касании (Например, скажем, текст: «Это тест»
Tap this -> index 0
Tap test -> index 1
Tap this -> test becomes index 0
Tap this -> this becomes index 1
то порядок не уедет.
Я уже понял, как получить цвет в приписываемой строке. это не проблема.
Как я могу перебрать связанная строка и выяснить слова, которые изменили цвет или что является наилучшим способом решения этой проблемы?
Спасибо!
Привет
Спасибо, работает как шарм! –