我知道它应该可以工作,我可以在示例项目中看到它,但是在我的示例项目中,我不能强迫outline视图浮动组行。代码很简单,除了这个特性之外,所有东西都能工作。可能我漏掉了一些明显的东西。
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[self.outlineView setFloatsGroupRows:YES];
}
- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item
{
if (item == nil)
return [@[@"1", @"2",@"3",@"4",@"5"] objectAtIndex:index];
return nil;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item
{
return NO;
}
- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item
{
if (item == nil)
return 5;
return 0;
}
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
{
return item;
}
- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
NSTableCellView *tableCellView = [outlineView makeViewWithIdentifier:[tableColumn identifier] owner:self];
return tableCellView;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item
{
if ([@[@"1", @"2",@"3",@"4",@"5"] indexOfObject:item] == 0)
return YES;
return NO;
}编辑--我在项目中添加了NSTableView和NSOutlineView,添加了相同的数据源和委托方法以及表视图的组行流,而大纲视图的组行流仍然没有。我想知道我缺少了什么,为什么大纲视图的组行不想飞?
发布于 2014-03-12 16:17:23
解决了。在NSOultineView 组中,行仅在子行上浮动()。它们不会在其他非组行上浮动,但是NSTableView 会执行。因此,如果您有一个没有子项的组行,如我的示例所示,那么它将不会浮动。
在我看来,这是一个bug,或者至少在这两种情况下都应该有一个选项(至少与表视图行为一致)。
发布于 2014-03-12 04:16:58

确保self.outlineView IBOutlet连接到xib中的NSOutlineView。
https://stackoverflow.com/questions/22328798
复制相似问题