Couleur de texte dans NSDataView
mac_manu
Membre
Bonjour,
Voici mon problème. J'ai une tableView où j'affiche les objets d'une array. Chaque famille de ces objets ont une référence NSColor. Comment procèder pour arriver le plus simplement possible à afficher ces objets en fonction de leur couleur?
Merci et à la prochaine
Voici mon problème. J'ai une tableView où j'affiche les objets d'une array. Chaque famille de ces objets ont une référence NSColor. Comment procèder pour arriver le plus simplement possible à afficher ces objets en fonction de leur couleur?
Merci et à la prochaine
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je crois même qu'il faut traiter tous les cas y compris ceux où la couleur doit "rester" celle par défaut (y'a en fait qu'une cell qui sert à toutes les lignes à tour de rôle)
A la prochaine les gars :spot:
Salut tout le monde
Il s'agit d'un vieux topic, mais je viens d'essayer cette methode et j'ai quelques petits problemes.
1 - J'arrive pas a bien controler quand il va faire appel a cette fonction. Je parviens a controler quel cell je modifie en faisant un test sur [tableColumn identifier] et sur le numero de la ROW.
2 - Il me modifie bien la couleur de ma cellule, mais si je fais un reloadData sur ma table, il me change toutes les cellules avec la couleur defini pour cette cellule specifique.
Voila un exemple :
Merci
Normal.
Tu modifies par setTextColor: la couleur du NSCell prototype (celui qui sert à afficher TOUTES les autres cellules) pour une cellule.
Mais tu ne remets pas la couleur d'origine avant modification. D'où une "recolorisation" du reste de la table dès un réaffichage complet.
Pour palier à ça, tu peux faire ceci :
- ajoute une variable d'instance de type NSColor dans ta classe (celle qui contient le delegate tableView:willDisplayCell:forTableColumn:row:), par exemple NSColor *couleurOriginale;
- initialise cette nouvelle variable d'instance (par exemple dans awakeFromNib) à nil.
- enfin dans le delegate :
.
Ok merci, j'ai pas bien compris pourquoi le (id)cell correspondait au NSCell prototype du coup modifiait toutes les autres cellules.
Mais bon au moins j'ai compris d'ou venait mon erreur... trop con de ma part.
Au changement de couleur je dois mettre mon row:(int)row et non pas [filesTableView selectedRow]
example qui marche pour modifier que la row 1
Voila.