NSOutlineView - 自动展开所有节点

发布于 2024-07-12 13:28:04 字数 216 浏览 10 评论 0原文

我有一个绑定到 NSTreeControllerNSOutlineView (如果这有影响的话),我想扩展 -awakeFromNib() 中的每个节点

我还想同时以编程方式选择第一个节点的第一个子节点。 这些事情对于表格视图来说很简单,但轮廓根本不适合我。

谢谢,

里奇

I've got an NSOutlineView bound to an NSTreeController (if that makes a difference), and I'd like to expand every node in my -awakeFromNib().

I'd also like to programatically select the first child of the first node at the same time. These sorts of things are simple with table views, but outlines are not cooperating with me at all.

Thanks,

Rich

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

说好的呢 2024-07-19 13:28:04

我想展开 -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]< /代码>。

I'd like to expand every node in my -awakeFromNib().

As of Mac OS X 10.5, [outlineView expandItem:nil expandChildren:YES].

In previous versions of Mac OS X, you'll need to iterate from 0 to the number of rows, getting the item for each row using [outlineView itemAtRow:row], and storing those items into an array, then iterate the array and pass each item to the expandItem:expandChildren: method. (You can't mix the two loops because expanding an item and all its descendants will change the row indexes of its subsequent siblings; therefore, you must collect all the top-level items first, then expand them once you have all of them.)

I'd also like to programatically select the first child of the first node at the same time.

Immediately after the above, it'll be row 1.

An outline view is a kind of table view, so you'll use one of NSTableView's methods: [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO].

卖梦商人 2024-07-19 13:28:04

如果您从数据源加载,

dispatch_async(dispatch_get_main_queue(), ^{
  [self.outlineView expandItem:root expandChildren:YES];
});

If you're loading from a datasource,

dispatch_async(dispatch_get_main_queue(), ^{
  [self.outlineView expandItem:root expandChildren:YES];
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文