2009-09-11 53 views

回答

3

当我遇到了类似的问题,从来没有引起我@Benedict提到的方法。这是因为NSOutlineView有一个单独的方法:

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

请参阅NSOutlineViewDelegate protocol的文档。 (这个正式协议在10.6中是新的 - 在先前版本的OS X中,这些方法是作为NSObject的一个类别实现的。)

3

NSOutlineViewNSTableView的子类。在NSOutlineView委托中实施tableView:willDisplayCell:forTableColumn:row:

tableView:willDisplayCell:forTableColumn:row:实现是这样的:

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


}