如何强制基于视图的 NSOutlineView 重新加载项目的视图?
How can I force a view-based NSOutlineView to reload the views for an item?
我有一个 datasource/view-based NSOutlineView
,它能够更改一行中表示的数据类型,即使实际的 item
对象引用保持不变。发生此突变时,其中一列需要加载不同的 NSTableCellView
。突变后我尝试执行以下操作:
[outlineView reloadItem:updatedItem reloadChildren:YES];
调用时,将调用以下 NSOutlineViewDataSource
方法:
-outlineView:isItemExpandable:
-outlineView:child:ofItem:
但是这个方法永远不会被调用:
-outlineView:viewForTableColumn:item:
如何强制 NSTableView
实际重新加载特定项目的视图?
你需要使用
- (void)reloadDataForRowIndexes:(NSIndexSet * nonnull)rowIndexes columnIndexes:(NSIndexSet * nonnull)columnIndexes
确保调用您的 viewForTableColumn
委托方法。
我有一个 datasource/view-based NSOutlineView
,它能够更改一行中表示的数据类型,即使实际的 item
对象引用保持不变。发生此突变时,其中一列需要加载不同的 NSTableCellView
。突变后我尝试执行以下操作:
[outlineView reloadItem:updatedItem reloadChildren:YES];
调用时,将调用以下 NSOutlineViewDataSource
方法:
-outlineView:isItemExpandable:
-outlineView:child:ofItem:
但是这个方法永远不会被调用:
-outlineView:viewForTableColumn:item:
如何强制 NSTableView
实际重新加载特定项目的视图?
你需要使用
- (void)reloadDataForRowIndexes:(NSIndexSet * nonnull)rowIndexes columnIndexes:(NSIndexSet * nonnull)columnIndexes
确保调用您的 viewForTableColumn
委托方法。