如何强制基于视图的NSOutlineView重新加载项目的视图?

时间:2015-08-22 07:22:51

标签: macos cocoa nstableview appkit nsoutlineview

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

[outlineView reloadItem:updatedItem reloadChildren:YES];

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

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

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

-outlineView:viewForTableColumn:item:

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

1 个答案:

答案 0 :(得分:4)

你需要使用

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

确保调用viewForTableColumn委托方法。