2017-10-11 120 views
2

如何將NSAttributedString格式的字符串附加到UITextView的現有textView.attributedText格式的字符串中?從UITextView追加格式化的字符串到已格式化的字符串?

this answer,我可以看到一個轉換,從和NSMutableAttributedString/NSAttributedString可以appendAttributedString()/append()做,但這個當我拉和更新textView.attributedText這樣不起作用

let string2 = NSAttributedString(string: "success", attributes: [NSAttributedStringKey.foregroundColor: UIColor.green]) 

let newMutableString = textView.attributedText.copy() as! NSMutableAttributedString 
newMutableString.append(string2) 

textView.attributedText = newMutableString.copy() as! NSAttributedString 

錯誤消息:

Could not cast value of type 'NSConcreteAttributedString' (0x10c7dff30) to 'NSMutableAttributedString' (0x10c7dff80). 
+0

爲什麼你要在你的字符串上調用'.copy()'? – LinusGeffarth

+0

@LinusGeffarth我試圖嘲笑這個其他答案......沒有真正的原因。將嘗試刪除它。 – powtac

+1

@LinusGeffarth似乎從@ tnguyen得到的答案是解決方案! :-) – powtac

回答

3

我相信你需要將它與mutableCopy複製因爲... e你想從不可變的副本中獲得可變副本:

let newMutableString = textView.attributedText.mutableCopy() as! NSMutableAttributedString 
+0

哇,就是這樣!非常感謝! – powtac