我有一个包含标签栏设计的 macOS 应用程序(即:Tweetbot)。有 4 个选项卡链接到 4 个不同的视图控制器。初始视图控制器(视图一)包含NSCollectionView
水平显示 3 个单元格的 a。
这一切都很好,但是当我切换到另一个视图控制器然后返回到初始视图控制器时,集合视图的顺序会无缘无故地发生变化。我没有对数据源(即 a NSMutableArray
)进行任何更改,也没有添加/删除任何单元格,也没有调用reloadData
. 我不明白为什么集合视图单元格的顺序不断变化。
我已经做了一些测试,可以确认我的数据源中的数据顺序完全没有改变。所以对于集合视图来说,仅仅改变单元格的顺序是没有意义的。
我注意到的另一个奇怪问题是,如果我将集合视图限制为 2 个单元格,则不会发生此问题。这让我想知道问题是否归结为某种NSCollectionView
在后台运行的缓存方法?也许当集合视图回收一个单元格时,它使用了不正确的数据?
我尝试了很多不同的解决方案,似乎没有任何效果。有没有人知道我可以测试/尝试什么,以找出问题所在?
另类的想法
我可以NSTableView
改用,因为它支持多列(与 不同UITableView
)。所以我可以NSTableView
用 3 列做一个。这种方法在性能方面会比 a 更差NSCollectionView
(特别是如果我想添加很多单元格?)。
谢谢你的时间,丹。