当行展开/折叠时,我正在尝试修改在我的 NSOutlineView 中使用的自定义 NSTableRowView 的外观。我的 NSOutlineViewDelegate 包括:
- (NSTableRowView *)outlineView:(NSOutlineView *)outlineView rowViewForItem:(id)item
{
...
return rowView;
}
- (void)itemDidExpand:(NSNotification *)notification
{
NSDictionary *userInfo = [notification userInfo];
id item = [userInfo objectForKey:@"NSObject"];
NSOutlineView *outlineView = [notification object];
[outlineView reloadItem:item];
}
不幸的是,这不会重新加载自定义行视图。
为整个 NSOutlineView 重新加载数据有效:
- (void)itemDidExpand:(NSNotification *)notification
{
[outlineView reloadData];
}
但是对于大量数据,这可能会非常耗时,并且通常会导致沙滩球旋转。
是否可以仅为单个顶级项目重新加载自定义行视图?