NSTableView: Différence entre willDisplayCell et objectValueForTableColumn
Mattcadam
Membre
Bonjour,
Ca fait un moment que je suis sur la personnalisation de mon NSTableView et il y a un truc que je ne comprends toujours pas.
Les données à afficher sont de type "Operation". Une "Operation" contient plusieurs champs (nom, somme, date, image ,etc). Dans un NSMutableArray (nommé data) j'ai plusieurs Operations.
Actuellement pour afficher mes données, je fais dans mon datasource de ma tableview :
Ensuite dans une custom NSTextFieldCell, je récupére les infos à mettre en forme à l'aide de
Ceci marche, d'où ma question qui est :
Quelle est la différence entre les deux méthodes suivante :
– tableView:willDisplayCell:forTableColumn:row:
et
- tableView:objectValueForTableColumn:row:
Ca fait un moment que je suis sur la personnalisation de mon NSTableView et il y a un truc que je ne comprends toujours pas.
Les données à afficher sont de type "Operation". Une "Operation" contient plusieurs champs (nom, somme, date, image ,etc). Dans un NSMutableArray (nommé data) j'ai plusieurs Operations.
Actuellement pour afficher mes données, je fais dans mon datasource de ma tableview :
- (id) tableView:(NSTableView*) tableView objectValueForTableColumn:(NSTableColumn*) tableColumn row:(int)row <br />{<br /> return [data objectAtIndex:row];//Ce qui renvoie un object de type "Operation"<br />}<br /><br />
Ensuite dans une custom NSTextFieldCell, je récupére les infos à mettre en forme à l'aide de
<br />NSString* nomdeMonOperation = [[self objectValue] valueForKey:@"nomDeMonParametre"];<br />
Ceci marche, d'où ma question qui est :
Quelle est la différence entre les deux méthodes suivante :
– tableView:willDisplayCell:forTableColumn:row:
et
- tableView:objectValueForTableColumn:row:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Te permet de spécifier quel item associer à chaque ligne de ta tableView et pour chaque colonne.
Te permet de spécifier les sous-classes de NSCell que doit utiliser la tableView pour chaque ligne et chaque colonne.
En gros la première méthode fait partie du "Data Source Porotocol" et permet de fournir les objets de la couche "model". La deuxième te permet de personnaliser les NSCell(couche "vue") et donc l'affichage de la tableView.