J'ai un UITextView
qui permet de sélectionner les mots du texte en tapant dessus. S'il est tapé, le mot est surligné en couleur en changeant l'attribut NSForegroundColor
. En le tapant à nouveau, vous le désélectionnez en modifiant la couleur de la couleur de texte.Obtenir la couleur a changé les mots de la chaîne attribuée
Maintenant, je devrais connaître tous les mots sélectionnés dans le UITextView
.
La première idée était de supprimer tout ce qui est un caractère spécial et diviser le texte à l'espace. Ensuite, vérifiez si l'attribut de couleur est égal à la couleur sélectionnée/surlignée de chaque mot séparé. Mais la chaîne attribuée ne permet pas de diviser un caractère ou de supprimer des composants. Le NSAttributedString
non plus.
La deuxième idée consistait à enregistrer les plages des parties mises en surbrillance dans un tableau et à parcourir pour obtenir les parties mises en surbrillance. Mais cela semble un peu trop compliqué pour moi, d'autant plus que j'ai besoin de l'ordre correct des mots quand ils apparaissent qui n'est pas garanti avec un tableau, ajouter/enlever à chaque tap (Par exemple, disons que le texte est: "Ceci est un test »
Tap this -> index 0
Tap test -> index 1
Tap this -> test becomes index 0
Tap this -> this becomes index 1
alors l'ordre n'est plus bon.
je l'ai déjà compris comment obtenir la couleur d'une chaîne attribuée. Ce n'est pas le problème.
Comment puis-je itérer la chaîne attribuée et comprendre les mots qui ont changé de couleur ou quelle est la meilleure façon de résoudre ce problème?
Merci!
Salutations
Merci, fonctionne comme un charme! –