我有一个基于视图的NSOutlineView绑定到NSTreeController。在我的委托中实现outlineView:isGroupItem:
方法之前,一切似乎都正常工作,然后组头突然停止显示。喜欢这个
我确认如果我要将NSOutlineView更改为基于单元格,则组项目会正确显示。 NSTableView也观察到类似的行为。还有其他人遇到过这个问题吗?
答案 0 :(得分:12)
解决了!
原来我必须在NSOutlineView
委托
- (NSView *)outlineView:(NSOutlineView *)outlineView
viewForTableColumn:(NSTableColumn *)tableColumn
item:(id)item {
if ([self outlineView:outlineView isGroupItem:item]) {
NSString *vId = [[[outlineView tableColumns] objectAtIndex:0] identifier];
return [outlineView makeViewWithIdentifier:vId owner:self];
}
return [outlineView makeViewWithIdentifier:[tableColumn identifier] owner:self];
}
显然,默认情况下,基于NSOutlineView的视图通过查找与列具有相同标识符的视图为表中的每个单元格生成视图。但是,对于组项/组行,没有与该行关联的tableColumm
,因此视图结果为零并且不显示。
玩苹果的TableViewPlayground sample project真的很有帮助!强烈推荐!