我正在尝试修改自定义NSTableRowView在NSOutlineView中行展开/折叠时的外观。我的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];
}
但是当处理大量数据时,这可能会耗费很长时间,并且经常导致出现旋转的沙滩球。
是否可以仅为单个顶级项目重新加载自定义行视图?