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";
}
모든 텍스트가 비어있는 것을 제외하고 모든 것이 순서대로 작동합니다. 텍스트없이 모든 루트 항목을 만듭니다.
NSTableColumn *titleColumn = [[[NSTableColumn alloc] initWithIdentifier:@"identifier"] autorelease];
[[titleColumn headerCell] setStringValue:@"Header"];
[self addTableColumn:titleColumn];
[self setOutlineTableColumn:titleColumn];
당신이 개요보기의 셀 인터페이스 빌더에서 바인딩을 확인 했 : –