NSOutlineView reloadItem: no tiene efecto
Estoy tratando de liberar algo de tensión en una vista basada enNSOutlineView
para el cual cambié una propiedad de un solo elemento y que inicialmente recargué bien usando[myOutlineView reloadData]
.
Lo intenté[myOutlineView reloadItem: myOutlineViewItem]
pero nunca llama- (NSView *)outlineView:(NSOutlineView *)ov viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
y en consecuencia los datos no se actualizan.
-(void)reloadOutlineViewObject
{
//[myOutlineView reloadData]; //Reload data just fines but is ressource-hungry
NSLog(@"%d",[myOutlineView rowForItem:myOutlineViewItem]; //Making sure my object is an item of the outlineView, which it is !
[myOutlineView reloadItem:myOutlineViewItem];
}
Me estoy perdiendo de algo ?
ACTUALIZARComo se señaló en los comentarios, mi outlineView está basado en vistas.
ACTUALIZACIÓN 2Probar algunas cosas me hizo darme cuenta de que el objeto que estoy recargando es un objeto de segundo nivel (cf árbol de objetos) y llamarreloadItem:firstLevelObject reloadChildren:YES
funciona.
¿Sería posible que solo podamos llamar a reloadItem: en el objeto de primer nivel? ¡Eso sería altamente ineficiente en mi caso (solo tengo un elemento de dos niveles y un montón de segundo nivel)!
nil ->firstLevelA ->secondLevel1
->secondLevel2
->firstLevelB ->secondLevel3
->secondLevel4
Intentaré subclasificar NSOutlineView y reescribirreloadItem:
mientras tanto.
Eché un vistazo aNSOutlineView en Cocotron para comenzar y sentí que el código que necesitaba escribir para sobrescribir reloadItem sería bastante pesado. Alguien para confirmar?