我正在尝试修改行扩展/折叠时在我的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];
}
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这不会重新加载自定义行视图.
重新加载整个NSOutlineView的数据:
- (void)itemDidExpand:(NSNotification *)notification
{
[outlineView reloadData];
}
Run Code Online (Sandbox Code Playgroud)
但是对于大量数据而言,这可能是耗时的,并且经常导致旋转的沙滩球.
是否可以仅为单个顶级项重新加载自定义行视图?