2012-03-09 68 views
0

我在Xcode中创建了一个NSOutlineView(Sourcelist),给它一个插座,并让我的类实现NSOutlineViewDataSource。然后我[outlineview setDataSource:],我看到它创建了我的数组中的项目数的单元格,但它们都是空白的。NSOutlineView数据源

sub1 = [NSArray arrayWithObjects:@"General Data",@"Most Played", @"Misc",@"Log", nil]; 
sub2 = [NSArray arrayWithObjects:@"General Data", @"Most Played", @"Misc",@"Log", nil]; 

items = [NSArray arrayWithObjects:sub1,sub2,nil]; 

[outlin setDataSource:self]; 
[outlin reloadData]; 

- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item 
{   
    return [self outlineView:outlineView numberOfChildrenOfItem:item] != 0; 
} 

- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item 
{  
    if (item) 
     if ([item isKindOfClass:[NSArray class]]) 
      return [item count]; 
     else 
      return 0; 
    else 
     return [items count]; 
} 

- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item 
{ 
    if (item) { 
     return [item objectAtIndex:index]; 
    } 
    else 
     return [items objectAtIndex:index]; 
} 

- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)theColumn byItem:(id)item 
{ 
    if (item) { 
     if ([item isKindOfClass:[NSArray class]]) 
      return @"YES"; // Return name for this node 
     else 
      return item; 
    } 
    else 
     return @"List Root"; 
} 

一切似乎是按顺序,这是一种作品,除了所有的文字是空白的。它创建了所有的根项目,并且只是没有文本。

+0

你检查,在Interface Builder您绑定的大纲视图中的细胞? – 2012-03-10 03:02:25

回答

0

也许你忘了建一个表列的NSOutlineView这样的:

NSTableColumn *titleColumn = [[[NSTableColumn alloc] initWithIdentifier:@"identifier"] autorelease]; 
[[titleColumn headerCell] setStringValue:@"Header"]; 
[self addTableColumn:titleColumn]; 
[self setOutlineTableColumn:titleColumn];