gpt4 book ai didi

objective-c - 向 NSOutlineView 添加标签元素

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

我有一个NSOutlineView设置为 datasource 。我在显示数据时没有任何问题,除了一个小细节:标签分支。

我需要在树中显示分支,这些分支只是作为对子元素进行分组的一种方式。假设我有一个“Parent” 元素。在“Parent”下,我将有一个名为“Children”的可展开元素,当其展开时,将显示所有子元素。但元素“Children”不是业务逻辑的一部分。

我知道NSOutlineView不保留它显示的数据,因此我在 .m 的开头创建了一个常量包含“Children”字符串的文件。问题是,如果我的结构包含很多父项,树的行为就会变得不稳定,因为每次我扩展“子级”时,我都会有效地扩展所有“子级” 在树中。

那么,我怎样才能将一个元素添加到树中,只是出于标记目的,尽管它看起来相同,但并不相同?

最佳答案

我建议您在数据源内部创建一个模型,该模型与您想要在大纲中显示的结构紧密匹配。这具有双重优点,即易于理解并且通常在委托(delegate)调用方面非常高效。

例如,您的真实模型可能是书籍列表,但出于显示目的,您希望将它们按标题的第一个字母分组(A、B、C ...)。在数据源委托(delegate)中,您可以使用以下结构创建一个字典数组 @{@"firstLetter":@"A", @"books":bookArray}.。然后,在委托(delegate)方法中,您可以使用这个新数组作为模型。

当然,您需要管理这个内部模型,但这通常很简单。

关于objective-c - 向 NSOutlineView 添加标签元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16359681/

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