Moyen simple de changer la couleur d'un texte
respawn
Membre
Bonjour,
existe-t-il un moyen simple de changer la couleur d'un NSString ?
Merki
existe-t-il un moyen simple de changer la couleur d'un NSString ?
Merki
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
NSAttributedString
Regarde la doc de NSAttributedString et celle de NSMutableAttributedString
et je voudrais que certaines lignes (celles d'erreur) soient par exemple en rouge
Si c'est juste pour de l'affichage, tu peux aussi utiliser un NSText ou un NSTextField et essayer setTextColor:
+
Chacha
http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSAttributedString_Class/Reference/Reference.html
http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSAttributedString_Class/Reference/Reference.html#//apple_ref/occ/instm/NSAttributedString/initWithString:attributes:
Avec le lien qui va bien :
http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSAttributedString_AppKitAdditions/Reference/Reference.html
Section "Constantes"
Merci schlum, j'ai déjà épluché ça un paquet de fois avant de poser la question ...
l'histoire des dictionnaires, range etc etc me parait beaucoup trop compliqué pour ce que je veux faire, je pensais qu'il existait une simple fonction setStringColor:blue ou setColor:blue ou qqch dans le genre ... mais non
Tu regardes trop le petit bout de la lorgnette.
Si ce que tu veux faire, c'est ajouter des lignes (de simples NSString) dans le textView dont certaines sont en rouge (les autres étant en noir) c'est simple à faire en quelques lignes (même si dans l'exemple ci-dessous j'ai volontairement surdéveloppé le code) :
Si tu comptes afficher ton texte dans une NSTextField tu peux faires comme ça:
Si tu comptes dessiner le texte à la main dans une vue par exemple, il te faut un NSAttributedString, et pour changer sa couleur c'est simple :
Edit : grillé
- (void)setAttributes:(NSDictionary *)attributes range:(NSRange)aRange
- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)aRange
- (void)removeAttribute:(NSString *)name range:(NSRange)aRange
....