【发布时间】:2013-11-02 02:40:07
【问题描述】:
我正在尝试使用 NSOutlineView 在我的应用程序中实现大纲视图,但在我的应用程序中,外层(父级)应该只有一列(品牌),内层(子级)应该有 5-6 列(大小,类型、图像等)。
有没有可能实现,如果可以怎么做?!
【问题讨论】:
标签: objective-c macos cocoa nsoutlineview
我正在尝试使用 NSOutlineView 在我的应用程序中实现大纲视图,但在我的应用程序中,外层(父级)应该只有一列(品牌),内层(子级)应该有 5-6 列(大小,类型、图像等)。
有没有可能实现,如果可以怎么做?!
【问题讨论】:
标签: objective-c macos cocoa nsoutlineview
是的,您可以在NSOutlineView(或NSTableView)中为“组行”设置“全角”单元格。
如果您使用基于单元格的大纲视图,请在您的 NSOutlineViewDelegate 中实现 outlineView:dataCellForTableColumn:item:
。在使用任何现有列调用此方法之前,将使用 nil 列调用它。对于相应的行,返回原型NSCell,并在您的其他数据源/委托方法中同样返回nil“列”的相应信息。您只需要为此创建一个通用的NSTextFieldCell;除非您愿意,否则无需自己设计样式。更多信息在documentation 或查看一些Apple sample code。
如果您使用基于视图的大纲视图,请实现等效的 outlineView:viewForTableColumn:item:。不幸的是,documentation 目前几乎不存在,但corresponding NSTableViewDelegate method 已记录在案,您可以查看this 代码示例。
全角项目的外观将根据为大纲视图配置的突出显示样式 (selectionHighlightStyle) 而有所不同;根据您的描述,听起来您想要“常规”而不是“源列表”行为。
【讨论】: