2016-12-26 2 views
-1

J'ai un textView qui contient un texte éditable (sa couleur et les attributs de police sont définis par l'utilisateur) J'ai implémenté un attributTexte pour y parvenir, mais quand le textView est vidé (il n'y a pas de texte dedans) les attributs sont toujours ceux choisis avant. c'est-à-dire que si la couleur rouge est choisie, quand tout le texte est supprimé et si le nouveau texte est tapé, il garde la couleur rouge, je veux que ce nouveau texte ait les valeurs par défaut de couleur et de police. J'ai essayé de régler le attributedText à zéro, mais je ne sais pas comment indiquer que le textView n'a pas de texte, je le code suivant dans une extension UITextView:Réinitialiser les attributs de attributeText dans textView lors de l'effacement - 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

Vérifiez si noteTextView.text == "" –

+0

Déjà essayé, ne fonctionne pas. –

+0

Marilyn .. quel est le problème? Ne va-t-il pas dans la condition if ou ne change pas la police? –

Répondre

0

Vous devez réinitialiser les attributs de retour par défaut lorsque vous déterminez le bon point. C'est à dire. textField.textColor = UiColor.black

2

Les attributs qui seront appliqués au texte nouvellement créé proviennent de la propriété typingAttributes. Cela change automatiquement quand le texte est sélectionné, donc le nouveau texte correspond à ce qui est remplacé ou, si la sélection est vide, ce qui le précède.

Dans votre cas, vous pouvez simplement le définir sur un dictionnaire vide pour l'effacer.