如果我理解你的问题,那么你就不明白这representedObject
是为了什么。representedObject
是代表视图控制器正在显示的所有数据的模型对象。它不是显示内容集合的视图的当前选择。您的representedObject
自定义顶级视图控制器将是一个NSArray
或其他集合类,其中包含您在视图控制器中显示的数据集。如果正确使用模式,更改representedObject
自定义顶级视图控制器的效果应该是换出一个全新的数据集。
通常,表格类型视图中各个元素的视图控制器都有自己的representedObject
,并且该对象不会更改。例如,如果您NSCollectionView
在视图中使用 each 元素NSCollectionViewItem
由NSViewController
. representedObject
for eachNSCollectionViewItem
告诉它要在其小视图中呈现哪些数据。
NSOutlineView
其超类NSTableView
的不同之处在于它们的单元通常NSCells
不是完整的NSViews
,除非您选择在 Mac OS X 10.7 或更高版本中以这种方式使用它们。即使在这种情况下,您通常也没有一个NSViewController
子类来管理每个单元格。因此,视图控制器representedObject
模式不会在用户选择的单个元素的级别上使用。如果您想要跟踪NSOutlineView
's 的选择,有很多NSTableView
方法可以让您做到这一点。