gpt4 book ai didi

swift - NSOutlineview 奇怪的行为

转载 作者:行者123 更新时间:2023-11-30 10:47:34 24 4
gpt4 key购买 nike

我很抱歉标题含糊不清,但老实说我不知道​​如何更好地表达它。目前我正在尝试创建一个简单的 NSOutlineView。这个想法是将一些城市归入其州。以下表示 NSOutlineView 的外观 Correct Layout

现在,正如您所看到的,一个可扩展项目中可以有很多子项。问题是,在打开和关闭某些状态后,会出现一些空白行,并且某些城市会被放置在随机位置甚至消失,如下图所示:Incorrect Layout

显然我自己做了一些研究,并发现了一些有趣的点。当扩展的状态中有很多城市并且并非所有城市都适合窗口时,这个问题就会开始发生。在我看来,有些 child 如果不在屏幕上,就无法正确加载。

我见过类似的问题,他们建议禁用Floats Group Rows,我这样做了,但没有任何改变。

对我来说,这看起来像是 NSOutlineView 的根本问题,但我可能是错的。我很高兴根据要求显示任何代码,我不想用随机代码弄乱整个帖子,因为我不知道什么是相关的。

最佳答案

好的,我已经为将来遇到类似问题的任何人找到了解决方案。在 apple docs他们说:

Important

It is possible that your data source methods for populating the outline view may be called before awakeFromNib() if the data source is specified in Interface Builder. You should defend against this by having the data source’s outlineView(_:numberOfChildrenOfItem:) method return 0 for the number of items when the data source has not yet been configured. In awakeFromNib(), when the data source is initialized you should always call reloadData().

因此,我在 awakeFromNib() 中调用了 reloadData(),但问题是,每当您展开时,都会多次调用 awakeFromNib()一个项目,这些多次重新加载导致显示元素出现问题,因此我的解决方案只是从 awakeFromNib()

中删除 reloadData()

关于swift - NSOutlineview 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55443583/

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