Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox

Changer la couleur du texte d'un Textview par code

Compatible MacOS 10.6. Cliquer pour en savoir plus sur les compatibilités.Par tef (Stephane), le 10 mars 2011
Je tiens à remercier les membres de PommeDev pour leur aide ;-)
Prérequis

Nous admettrons que vous avez déjà un projet en cours et que vous avez inséré au minimum un Text View dans votre projet.

En théorie

Comme le précise le titre, en théorie, pour spécifier une couleur de texte de base dans notre Text View, c'est très simple :

  1. On sélectionne la première ligne du Text View en double cliquant dessus jusqu'à ce qu'elle soit sélectionnée (pas évident), soit en double cliquant dans la fenêtre de la classe MainMenu.xib : Window > Content view > Bordered Scroll View (Text View) > Text View.
  2. On fait cmd+1 pour Text View Attributes et on choisit notre couleur dans Text Color

Couleur du Text View

Mais voilà, c'est la théorie et on peut voir que dans la pratique, cela ne marche pas forcement car notre texte qui sera tapé quand vous allez tester votre application en faisant cmd+r sera en noir et non en blanc alors que la copie d'écran ci-dessus montre bien une couleur blanche. Alors que faire ? Il nous reste plus que le code.

La pratique

Nous y voilà. Admettons que notre projet s'appelle TextViewPerso et que mes fichiers classes se nomme TextViewPerso.h et TextViewPerso.m. D'abord nous devons définir notre Text View dans notre classe pour qu'il soit reconnu :

  1. Aller dans votre classe TextViewPerso.h
  2. Dans @interface, nous allons définir notre Text View avec IBOutlet :
IBOutlet id myTextView;
  1. Un petit cmd+s pour enregistrer.

Retournons dans Interface Builder. Nous allons lier notre Text View avec notre définition myTextView que nous avons fait ci-dessus :

  1. Dans la fenêtre de la classe MainMenu.xib, sélectionner la ligne TextViewPerso App Delegate.
  2. Rester appuyé sur ctrl et faite un Drag & Drop (glisser – déposer) sur notre Text View dans notre forme (ici mon projet porte un autre nom dans le screenshot mais ce n'est pas grave).

  1. Relâcher et vous allez avoir votre déclaration myTextView qui va apparaître. Sélectionner le :

Voilà les liaisons sont faites. Commençons à coder:-)

Résumons : Que voulons-nous ? Assez simple en fait, nous voulons qu'une fois notre application chargée, on change immédiatement la couleur de notre texte. Bah alors ? Qu'attendons-nous ? ;-)

  1. Ouvrer la classe TextViewPerso.m. Vous pouvez voir applicationDidFinishLaunching et en commentaire dessous : Insert code here to initialize your application. Il n'y a pas plus explicite !
  2. Ecrire dessous le commentaire (ou à la place mais je vous conseille dessous pour garder un maximum de commentaire) la ligne suivante :
[myTextView setTextColor:[NSColor whiteColor]];

Reprenons cette dernière ligne. MyTextView c'est notre champ Text View. SetTextColor permet de définir la couleur de notre texte. Et enfin NSColor whiteColor permet de dire que la couleur que l'on va définir sera blanche. Cocoa fonctionne sur un principe d'envoi de message. Les crochets veut dire justement que c'est un message qu'on envoie. En l’occurrence, textuellement tout cela veut dire : J'envoie un message à mon Text View pour lui définir une couleur de texte blanche.

  1. Faites un cmd+s pour enregistrer.

Et ben je pense que tout est fini ! Faites un cmd+r pour exécuter votre application. Et voilà c'est terminé.

Conclusion

J'espère que ce tutorial vous aura servi. Bon Dev à tous ;-)