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