我有绑定到NSOutlineView(如果有差别)的NSTreeController,我想扩大每个节点在我-awakeFromNib()

我还希望以编程选择所述第一节点的第一个子同时。这种事情是有桌子的观点很简单,但轮廓不与我在所有合作。

谢谢,

有帮助吗?

解决方案

  

我想扩大每一个节点在我-awakeFromNib()。

由于Mac OS X的10.5,[outlineView expandItem:nil expandChildren:YES]

在Mac OS X上的先前版本中,则需要从0迭代到的行数,使用[outlineView itemAtRow:row]获取项目的每一行,并存储这些项目到一个数组,然后循环该阵列,并通过每个项目到expandItem:expandChildren:方法。 (你不能因为扩张项目及其所有后代将改变其后续的兄弟姐妹的行索引两个循环混合;因此,您必须首先收集所有的顶级项目,然后展开他们一旦你拥有了所有的人。 )

  

我还希望以编程选择所述第一节点的第一个子同时

紧接以上后,这将是第1行。

这是大纲视图是一种表视图,所以你会使用NSTableView的的方法之一。[outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO]

其他提示

如果你从一个数据源加载,

dispatch_async(dispatch_get_main_queue(), ^{
  [self.outlineView expandItem:root expandChildren:YES];
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top