NSOutlineView-feature.png 在开发基于osx的Application的过程中,当我们需要显示一组列表结构的数据时,比较容易想到的控件是NSTableView;但如果你显示的数据有层级结构时 ,NSTableView就会面临一个问题:因为在osx中,NSTableView没有分组功能( sections) 因为在cocoa 中提供了另一个控件供满足我们的需求NSOutlineView它是继承自 NSTableView的子类,是Mac OSX Application常用的控件之一,与NSTableView相似,NSOutlineView也使用行和列来显示内容,但所不同的是NSOutlineView 项目工程,并搭建UI界面,大致效果如下图: UI界面 从控件库中,拖动Source List 控件(NSOutlineView)到storyboard中,并添加约束。 数据模型 NSOutlineView的Data model 与NSTableView有些不同,因为NSOutlineView显示层级结构,因此Data model中要能够表示出这种数据的层级来:root
可以试试NSOutlineView。NSOutlineView是NSTableView的子类,但是他比NSTableView多了分组的功能,使用层级的数据结构。 ? ? 哦!那我查查怎么使用。 - (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item { if(! - (id)outlineView:(NSOutlineView *)outlineView itemForPersistentObject:(id)object ; 6.自定义row。 - (CGFloat)outlineView:(NSOutlineView *)outlineView heightOfRowByItem:(id)item ; 4.获取到选择节点后的通知。 以上是在探索纯代码实现NSOutlineView的学习过程中的一些小总结,希望大家不吝珠玉,给予补充或者提出建议,一起学习交流。