2017-02-08 7 views
0

テキストを選択して選択したテキストに属性を適用するTextViewがあります。iOS Swift - テキスト全体を置換せずにテキストビューに属性を適用する

私は私のTextViewを取ると、その属性付きテキストを更新し、必要な変更とNSMutableAttributedStringのアップデート後:

textView.attributedText = NSMutableAttributedStringText // pseudo-example 

しかし、この帰属は、テキストビュー(以前の属性のOFCを維持する)のテキスト全体を置き換えます。

変更を加えるたびにテキスト全体を置き換えるのではなく、textView.attributedTextの変更を更新する方法はありますか?

+0

私がしたいことは、通常のtextView.replaceメソッドのようになりますが、Stringパラメータの代わりにNSAttributedStringになります。 拡張機能を実装しなければならない可能性があります –

+0

申し訳ありませんが、私のコメントを誤って読んだことを申し訳ありませんが、解決策はありませんでしたが、** TextKit ** https://www.raywenderlich.com/77092/textこの問題の解決のための-kit-tutorial-swift(古いチュートリアル) –

+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 
関連する問題