【问题标题】:NSOutlineView ReloadItem Does Not WorkNSOutlineView ReloadItem 不起作用
【发布时间】:2018-07-02 12:45:33
【问题描述】:

在我的 NSOutlineView 上调用 reloadItem() 时,项目似乎没有更新。 ReloadData() 可以很好地更新它们。与 rowForItem() 后跟 reloadDataForRowIndexes() 一样。

通过调试,我发现在 ReloadItem() 之后永远不会调用 viewForTableColumn()。这似乎很奇怪,为什么会有这个功能呢?

那么我为什么不直接使用你所说的 rowForItem() 和 reloadDataForRowIndexes()。因为如果项目的 isGroupItem 返回 true,那么 reloadDataForRowIndexes 什么也不做。我想我在某处读到这是因为 groupItems 没有列或其他东西?

因此,如果不调用 reloadData(),我无法更新 NSOutlineView 中的 groupItem 行。这会阻止我使用任何插入和删除动画...而且我想要动画。

有没有人找到使用 reloadItem 更新 groupItem 行的方法???或任何其他不需要重新加载整个大纲视图的方式?

最好的,

加文

【问题讨论】:

标签: nsoutlineview


【解决方案1】:

老问题,但在遇到类似问题数小时后,我今天仍然遇到这个问题。无论如何,我最终在开发者论坛上找到了这个 https://forums.developer.apple.com/thread/68477

本质上,NSOutlineView 通过引用与它的所有 for item: Any? 函数进行比较,这意味着结构将不起作用。

将我的结构更改为类就可以了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    相关资源
    最近更新 更多