在NSOutlineView中,父级的列可以少于子级吗?

时间:2013-11-01 18:09:45

标签: objective-c macos cocoa nsoutlineview

我正在尝试使用NSOutlineView在我的应用中实现大纲视图,但在我的应用中,外层(父级)应该只有一个列(Brand),内层(子级)应该有5-6列(Size,类型,图像等)。

是否有可能实现,如果是这样,该怎么做?!

1 个答案:

答案 0 :(得分:3)

是的,您可以在NSOutlineView(或NSTableView)中为“组行”添加“全角”单元格。

如果您使用的是基于单元格的大纲视图,请在outlineView:dataCellForTableColumn:item: 中实施NSOutlineViewDelegate。在使用任何现有列调用此方法之前,将使用nil列调用该方法。对于相应的行,返回原型NSCell,并在您的其他数据源/委托方法中同样返回nil“列”的相应信息。您只需为此创建一个通用NSTextFieldCell;除非您愿意,否则无需自己设计样式。有关documentation的更多信息,请查看某些Apple sample code

如果您使用的是基于视图的大纲视图,请实现等效的outlineView:viewForTableColumn:item:。不幸的是,documentation目前还不存在,但记录了corresponding NSTableViewDelegate method,您可以查看this代码示例。

全角项目的外观将根据为大纲视图配置的高亮样式(selectionHighlightStyle)而有所不同;根据你的描述,听起来你会想要“常规”而不是“源列表”行为。