【发布时间】:2017-06-18 19:13:54
【问题描述】:
我有一个UITextView,它允许通过点击它来选择文本中的单词。如果点击它,则通过更改NSForegroundColor 属性以颜色突出显示该单词。
再次点击它会通过将颜色更改回文本颜色来取消选择它。
现在我需要知道UITextView 中所有选定的单词。
第一个想法是删除所有特殊字符并在空格处拆分文本。然后检查颜色属性是否等于每个单独单词的选定/突出显示颜色。
但是属性字符串不允许在字符处拆分或删除组件。 NSAttributedString 也没有。
第二个想法是将突出显示部分的范围保存在一个数组中并对其进行迭代以获得突出显示的部分。但这对我来说似乎有点太复杂了,特别是当我需要正确的单词顺序时,数组不能保证,每次点击时添加/删除 (例如,假设文本是:“这是一个测试”
Tap this -> index 0
Tap test -> index 1
Tap this -> test becomes index 0
Tap this -> this becomes index 1
那么订单就不好了。
我已经想出了如何获取属性字符串的颜色。那不是问题。
我如何遍历属性字符串并找出改变颜色的单词或解决此问题的最佳方法是什么?
谢谢!
问候
【问题讨论】:
标签: ios swift colors uitextview highlight