我有一个TextView,在其中我选择了一些文本并成功地将属性应用于所选文本。
使用所需更改更新NSMutableAttributedString后,我将使用TextView并更新其属性文本:
textView.attributedText = NSMutableAttributedStringText // pseudo-example
但是这种归属取代了文本视图的整个文本(保留了c的先前属性);
有没有办法只更新textView.attributedText
更改,而不是每次更改时都替换整个文本?
答案 0 :(得分:1)
我本周早些时候刚刚做过这个。
创建attributedText
的可变副本,更新可变副本,创建更新字符串的不可变副本。
guard let text = textView.attributedText?.mutableCopy() as? NSMutableAttributedString else { return }
text.addAttribute(NSForegroundColorAttributeName, value: color, range: selectedRange)
textView.attributedText = text.copy() as? NSAttributedString