清除时,在textView中重置attributesText的属性 - Swift

时间:2016-12-26 05:18:23

标签: ios swift uitextview nsattributedstring

我有一个textView,其中包含一个可编辑的文本(其颜色和字体属性由用户设置)我为了实现这一点而实现了一个attributionText,但是当textView被清空时(其中没有文本) )属性仍然是之前选择的属性。即如果选择了红色,当删除所有文本时,如果键入新文本,则保持红色,我希望这个新文本具有颜色和字体的默认值。我试图将attributedText设置为nil,但我不知道如何指示textView没有文本,我在UITextView扩展中有以下代码:

 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
}

2 个答案:

答案 0 :(得分:3)

将应用于新键入文本的属性来自typingAttributes属性。选择文本时会自动更改,因此新文本与替换的文本匹配,如果选择为空,则会在其前面添加。

在您的情况下,您可以将其设置为空字典以清除它。

答案 1 :(得分:0)

确定正确的点时,需要将属性重置为默认值。 IE浏览器。 textField.textColor = UiColor.black