NSOutlineView
是 的子类NSTableView
。目前,NSTableView
支持两种实现。
- 基于细胞。
- 基于视图。
要制作 OSX 10.8 Finder 样式的侧边栏(带有自动灰色图标样式),需要使用具有源列表突出显示样式的基于视图的表格视图。
对于 NIB,这是典型的工作。没什么难的。(参见SidebarDemo)但我想避免使用任何 NIB 或 Interface Builder。我想纯粹以编程方式制作侧边栏。
在这种情况下,我有很大的问题。AFAIK,无法为特定单元格提供原型视图。当我打开.xib
文件时,我看到<tableColumn>
包含<prototypeCellViews>
. 这指定了该列将使用什么视图。我找不到如何使用公共 API 以编程方式设置它。
作为一种解决方法,我尝试使用-[NSTableView makeViewWithIdentifier:owner:]
and手动制作单元格-[NSTableView viewAtColumn:row:makeIfNecessary:]
,但它们都没有返回视图实例。我创建了一个NSTableCellView
,但它没有图像视图和文本字段实例。而且我也尝试设置它们,但是这些字段被标记为assign
立即释放实例。我试图通过强制保留它们来保留它,但它不起作用。NSTableView
不管理它们,所以我确信表格视图不喜欢我的实现。
我相信有一个属性可以为列设置此原型视图。但我找不到他们。我在哪里可以找到该属性并以NSOutlineView
编程方式使用源列表样式设置系统默认值?