2009-09-11 9 views
2

J'essaye de comprendre comment changer le style pour des noeuds de groupe dans NSOutlineView. Avec setSelectionHighlightStyle, je peux changer le style de la liste entière. Mais je veux changer seulement le style pour les noeuds de groupe. Comment puis-je faire cela?Comment changer de style pour les nœuds dans NSOutlineView?

Répondre

3

Quand je suis tombé sur un problème similaire, la méthode @Benedict mentionne moi n'a jamais été déclenché pour. En effet, NSOutlineView a une méthode distincte:

- (void) outlineView:(NSOutlineView*)aTableView 
    willDisplayCell:(id)aCell 
     forTableColumn:(NSTableColumn*)aTableColumn 
       item:(id)item; 

Voir la documentation du NSOutlineViewDelegate protocol. (Ce protocole formel est nouveau en 10.6 - dans les versions précédentes d'OS X, les méthodes étaient implémentées en tant que catégorie sur NSObject.)

3

NSOutlineView est une sous-classe de NSTableView. Implémentez le tableView:willDisplayCell:forTableColumn:row: dans le délégué NSOutlineView.

Dans la tableView:willDisplayCell:forTableColumn:row: mettre en œuvre quelque chose comme ceci:

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex 
{ 
    if ([aTableView isGroupRow: rowIndex]) { 
     //modify aCell 
    } 


} 
Questions connexes