2016-12-26 3 views
-1

私は、編集可能なテキストを含むtextViewを持っています(色とフォントの属性はユーザーによって設定されています)。これを達成するためにattributedTextを実装しました。空になっている(そこにテキストはありません)属性は以前に選択されたものです。つまり、赤色を選択した場合、すべてのテキストが削除され、新しいテキストが入力された場合は赤色が維持されます。この新しいテキストにはデフォルト値の色とフォントが必要です。私はnilにattributedTextを設定しようとしましたが、私はTextViewには何のテキストを持っていないことを示すために方法がわからない、私はUITextViewの拡張に次のコードを持っている:属性を消去したときに、textViewのattributedTextの属性をリセットする - Swift

func setAttributedValueAtSelectedTextRange(_ attributeName: String, value: Any) { 
    let textRange = selectedRange 
    let selectedText = NSMutableAttributedString(attributedString: attributedText) 
    selectedText.addAttribute(attributeName, value: value, range: textRange) 
    attributedText = selectedText 
    selectedRange = textRange 
    attributedText = nil 
} 
+0

noteTextView.text == "" " –

+0

を確認してください。既に試してみましたが、うまくいきません。 –

+0

マリリン..問題は何ですか?それはif条件に入っていないか、フォントを変更していないのでしょうか? –

答えて

0

あなたが戻って属性をリセットする必要があります正しいポイントを決定するときにデフォルトに設定します。つまりtextField.textColor = UiColor.black

2

新しく入力されたテキストに適用される属性は、typingAttributesプロパティから取得されます。これは、テキストが選択されたときに自動的に変更されるため、新しいテキストは置き換えられるものと一致するか、選択が空の場合はそれが先になります。

あなたの場合は、空の辞書に設定してクリアすることができます。

関連する問題