Modifier une ligne d'une tableview
chaps31
Membre
Bonjour à tous, je m'arrache les cheveux sur un pb... J'ai une tableview qui à un tableau en datasource, jusque là pas de scoop, sauf que je voudrais que pour une ligne donnée si la colonne acolumn de ce tableau prend une certaine valeur, alors la ligne correspondante dans la tableview soit mise en évidence, soit par son texte en italique ou d'une autre couleur ou bien par un fond d'une couleur particulière pour la ligne en question, mais je ne trouve nulle part comment faire... :)beta:
Pour le style du texte je ne vois pas comment appliquer un formatter à une seule ligne de la tableview et pour la couleur de fond j'ai essayé de définir le rectangle avec rectOfRow mais visiblement ça ne fonctionne pas la position du rectangle (visible par la couleur de fond qu'il prend) n'est pas du tout dans la tableview... :crackboom:-
SOS Merci
Pour le style du texte je ne vois pas comment appliquer un formatter à une seule ligne de la tableview et pour la couleur de fond j'ai essayé de définir le rectangle avec rectOfRow mais visiblement ça ne fonctionne pas la position du rectangle (visible par la couleur de fond qu'il prend) n'est pas du tout dans la tableview... :crackboom:-
SOS Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
BOOL specialDesign;
Il faut que lorsque "a colonne acolumn de ce tableau prend une certaine valeur", le specialDesign soit activé pour toutes les cellules de la ligne chaque dessin de la cellule dans la ligne.
On peut également faire une MyTextFieldCell différente pour chaque colonne.
Non non, une seule NSCell par colonne...
À moins que ça n'ait changé avec Leopard, mais dans NSTableColumn, il y a toujours les méthodes "- (id)dataCell" et "- (void)setDataCell:(NSCell *)aCell" à priori :P
[Edit] En fait, 2 par colonne... Une pour le " header " et une pour le " content "
Effectivement ...Â
Ma solution avec specialDesign marche en intervenant par exemple lors d'un
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
Voici un exemple : (le code serait plus propre avec un lockFocus)
Ma tableView a donc un tableau en datasource, lui-même construit par assemblage de dictionnaires, que du classique, et si la colonne concernée était mise en AttributedString dès le dictionnaire avec l'attribut adéquat, ça marcherait ? Arrivée dans la tableview l'attributedstring serait bien affichée ? ::)
cette idée m'est venu en voulant mettre en pratique le conseil de Schlum (je met une majuscule à Schlum parce-que c'est "Classe"... ;D ) mais en l'occurence ça ne marche pas, mais jene suis pas certains de bien créer l'attributedstring
Merci à vous 2, Philippe49 je garde ton système un tantinet sophistiqué pour moi, en effet, sous le coude.
sans problème (ce n'est pas la colonne qu'il faut mettre en AttributedString, mais l'objet représenté par la cellule)
Encore merci à vous 2