gpt4 book ai didi

cocoa - NSOutlineView 中的非唯一项

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

根据Apple's documentation , NSOutlineView 要求 View 中的每个项目都是唯一的,但是,如果这实际上不符合业务需求怎么办?特别是,如何显示这样的内容

Item A
-> Item B
-> Item E
-> Item C
Item D
-> Item B
-> Item E
-> Item F

请注意项目 B 及其子项目如何多次出现在树中。当然,应用程序会进行检查以确保不会发生循环,因此树是有限的。

子类化 NSOutlineView 有帮助吗?或者是否需要创建一个全新的 View 类?

最佳答案

您可以使用 NSIndexPath 对象作为大纲 View 中的项目。例如,索引路径 (0, 0) 将引用项目 A 的项目 B,而索引路径 (1, 0) 将引用项目 D 的项目 B。

您将无法使用绑定(bind);您需要实现一个数据源。

您的数据源方法将需要使用索引路径从模型中获取相关的真实模型对象。我建议创建一个方法来执行此操作,并从所有数据源方法中使用该方法。

此外,您还需要正确处理删除对象:如果您删除模型数组中间的对象,则必须删除末尾的索引路径,而不是中间,并告诉 View 重新加载之间的所有项目(索引路径)。

关于cocoa - NSOutlineView 中的非唯一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8549668/

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