Couleur dans NSTableView

jb_jb_fr

Membre confirmé
11 Septembre 2006
62
3
Marcoussis
Bonjour

Avant tout je vais me présenter car je suis tout nouveau :
Je m'appel Jacques, j'ai 38 ans, je suis informaticiens.
J'ai acheté en Juillet 2005 mon 1ere Apple iMacG5 1Go.
Je n'avais pas d'ordinateur "moderne" à la maison (j'ai des
MO5/MO6/TO8D, un Atari STE/Falcon et c'est tout)

Ma femme me tannait pour avoir un ordinateur digne de
ce nom, et j'aime pas les PC. J'ai donc craqué pour un
iMacG5 17" car je le trouve super beau, et pas gros.

Donc une fois la bête à la maison je me suis donc mis
à faire de la programmation. Il m'a donc fallu aprendre
un nouveau langage : Objective C. C'est somme toute
déroutant quand on y est pas habitué.

Donc j'essai tant bien que mal d'ecrire une application:
Un logiciel de compta (tres simple bien sur). Vous me direz :
Mais pourquoi en ecrire un, puis qu'il y a tout sur le net :
du free, du shareware, du commerciale. Certe, mais aucun
n'est capable de récuperer mes compte que je faisais (et que
je fais toujours) sur mon Atari. Donc j'ecris une appli capable
de récuperer ma base Atari, et de la sauver au format Atari.

Et donc dans mon application, j'ai une fenetre qui affiche
une classe NSTableView, et dont cette derniere est remplie par
une classe NSMutableArray.

Mais je voudrais pour certaine opération, ecrire les ligne en
rouge (pour les prévisions). Et je n'ai pas trouver d'article
decrivant comment modifier la couleur d'un texte dans NSTableView.

Pourriez vous m'aider pour cela? Ou chercher? Comment faire?

bonne fin de journée

Jacques
 
Salut,

J'ai proposé une soluce ICI

En fait ça se passe dans :
Bloc de code:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
 
Mais je voudrais pour certaine opération, ecrire les ligne en
rouge (pour les prévisions). Et je n'ai pas trouver d'article
decrivant comment modifier la couleur d'un texte dans NSTableView.
Utilise le classe NSValueTransformer avec un code du style :
Bloc de code:
- (id)transformedValue:(id)value 
{  
  if([value isEqualToNumber: [NSNumber numberWithInt: -2]])
    return [NSColor redColor];
  else if([value isEqualToNumber: [NSNumber numberWithInt: -1]])
    return [NSColor orangeColor];
  else 
    return [NSColor blackColor];
}
Chez moi il est utilisé par binding sur l'attribut textColor de la classe NSTableColumn, mais ça doit être utilisable sans binding. Voir les exemples sur l'ADC :zen:
 
Merci beaucoup à mpergand et ntx pour les réponses

J'ai essayé :

Bloc de code:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex


Et ca à super bien marché. :):up:

J'essairai de voir avec la solution de ntx tout de meme.
Cela me laissera ainsi deux possibilité pour de futur programmes:p


Merci beaucoup

JB