【问题标题】:Is there a faster way of refreshing newly inserted items than reloadData in NSOutlineView?有没有比 NSOutlineView 中的 reloadData 更快的刷新新插入项目的方法?
【发布时间】:2021-07-21 22:44:14
【问题描述】:

向我的NSOutlineView 添加一行时,我调用reloadData 来刷新NSOutlineView,如下所示:

[m_dataSource add:...];  // first add item to my data source
[m_outlineView reloadData]; 

不幸的是,reloadData 在为插入的每一行调用时似乎非常慢。以这种方式插入 1000 行大约需要一分钟,因为 reloadData 也被调用了 1000 次。

那么有没有更快的方法可以用来告诉NSOutlineView 在插入一行后刷新?

【问题讨论】:

  • 文档对NSOutlineViewreloadDatareloadItem 有什么看法?
  • 如果使用insertItemsAtIndexes:inParent:withAnimation: 向大纲视图添加行,则不必调用reloadData。这 1000 行是在 runloop 的同一迭代中添加的吗?

标签: objective-c macos cocoa nsoutlineview


【解决方案1】:

On 可以希望 Apple 将 diffable 数据源 添加到 NSOutlineView,就像它存在于 NSTableView 一样,同时您可以尝试这些项目:shpakovski/OutlineViewDiffableDataSourcestevesparks/OutlineViewDiffableDataSource

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 2012-12-23
    相关资源
    最近更新 更多