gpt4 book ai didi

objective-c - 仅展开 NSOutlineView 中的根节点

转载 作者:行者123 更新时间:2023-12-03 17:11:11 25 4
gpt4 key购买 nike

我正在尝试解决一个简单的问题,即仅扩展我的 NSOutlineView 中的根项但没有运气。我可以展开所有项目和选定的项目,但我似乎无法弄清楚如何准确识别如何仅扩展根节点。大纲 View 显示文件夹树,我想显示根文件夹下可用的文件夹,但我不想展开文件夹子级。

我目前尝试设置 NSTreeController 的选择索引路径,然后在大纲 View 中展开选择:

 NSIndexPath *indexPath;
NSUInteger section = [indexPath indexAtPosition:0];
NSIndexPath *ip = [NSIndexPath indexPathWithIndex:section];
[outlineView collapseItem:nil collapseChildren:YES];

[self.treeController setSelectionIndexPath:ip];
[outlineView expandItem:[self.treeController selectionIndexPath]];

这不起作用。非常感谢有关我如何正确解决此问题的建议。

干杯,特隆德

解决方案:我已经拥有的内容和 @PaulPatterson 建议的以下组合非常有效:

[outlineView collapseItem:nil collapseChildren:YES];
NSIndexPath *indexPath;
NSUInteger section = [indexPath indexAtPosition:0];
NSIndexPath *ip = [NSIndexPath indexPathWithIndex:section];
[outlineView collapseItem:nil collapseChildren:YES];

[self.treeController setSelectionIndexPath:ip];
id node = [[self.treeController selectedNodes] firstObject];
[outlineView expandItem:node];

最佳答案

问题是否是 [-NSOutlineView ExpandItem:] 预期的值与 [-NSTreeController SelectionIndexPath] 返回的值不匹配?

就目前情况而言,您将 NSIndexPath 实例传递给 expandItem:。我很欣赏 expandItem: 对于它作为参数所期望的特定类是不可知的(文档声明它接受任何对象 - id),但我的经验是它想要node 对象 - [-NSTreeController selectedNodes] 返回的数组中包含的对象类型。请尝试以下操作:

if ([[self.treeController selectedNodes] count] == 1) {
id node = [[self.treeController selectedNodes] firstObject];
[outlineView expandItem:node];
}

关于objective-c - 仅展开 NSOutlineView 中的根节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26900021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com