我有字符串数组[apple,mango,banana,kiwi,orange]
当用户在textview上键入时,如果最后一个单词与数组中的任何单词匹配,则应该加下划线并添加轻击手势。
我正在使用
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
let lastword = textviewtext.lastword()//i have last word i have to replace
if myarray.contains(lastword) {
//here code for replacing the text and underline it and add tap gesture
}
如何做到这一点 exapmle - 用户如果键入 - “橙色 苹果对健康有益”这里橙色和苹果应加下划线并且应该通过某些操作启用点击。例如警告“橙色点击“或”苹果窃听“
答案 0 :(得分:1)
要为某些字词加下划线,您可能希望使用rangeOfString
在文字视图中获取该字词的NSRange,并创建一个新的属性字符串以应用于文字视图。这是一个例子:
let at = NSMutableAttributedString(string: textView.text)
words.forEach { word in
if let range = textView.text.range(of: word) {
at.addAttribute(NSUnderlineColorAttributeName, value: UIColor.red, range: range)
}
}
textView.attributedText = at
要识别单词被点击的时间,请参阅this answer。