【问题标题】:How can I force a view-based NSOutlineView to reload the views for an item?如何强制基于视图的 NSOutlineView 重新加载项目的视图?
【发布时间】:2015-08-22 07:22:50
【问题描述】:

我有一个基于数据源/视图的NSOutlineView,它能够更改连续表示的数据类型,即使实际的item 对象引用保持不变。当发生这种突变时,其中一列需要加载不同的NSTableCellView。我尝试在突变后执行以下操作:

[outlineView reloadItem:updatedItem reloadChildren:YES];

当它被调用时,会调用以下 NSOutlineViewDataSource 方法:

-outlineView:isItemExpandable:
-outlineView:child:ofItem:

但是这个方法永远不会被调用:

-outlineView:viewForTableColumn:item:

如何强制NSTableView 实际重新加载特定项目的视图?

【问题讨论】:

    标签: macos cocoa nstableview appkit nsoutlineview


    【解决方案1】:

    你需要使用

    - (void)reloadDataForRowIndexes:(NSIndexSet * nonnull)rowIndexes columnIndexes:(NSIndexSet * nonnull)columnIndexes
    

    确保您的viewForTableColumn 委托方法被调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多