NSOutlineView reloadItem: hat keine Auswirkung

Ich versuche, eine Anstrengung auf der Basis von Ansichten abzubauenNSOutlineView für die ich eine einzelne Item-Eigenschaft geändert habe und die ich anfangs ganz gut mit reloaded habe[myOutlineView reloadData].

Ich habe es versucht[myOutlineView reloadItem: myOutlineViewItem] aber es ruft nie an- (NSView *)outlineView:(NSOutlineView *)ov viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item und folglich werden die Daten nicht aktualisiert.

-(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];   
}

Vermisse ich hier etwas?

AKTUALISIEREN

Wie in den Kommentaren erwähnt, ist meine outlineView ansichtsbasiert.

UPDATE 2

Beim Ausprobieren einiger Dinge wurde mir klar, dass das Objekt, das ich neu lade, ein Objekt der zweiten Ebene (siehe Objektbaum) ist und aufgerufen wirdreloadItem:firstLevelObject reloadChildren:YES funktioniert.

Wäre es möglich, dass wir reloadItem: nur für Objekte der ersten Ebene aufrufen können? Das wäre in meinem Fall sehr ineffizient (ich habe nur einen Gegenstand mit zwei Ebenen und jede Menge zweiter Ebene)!

nil ->firstLevelA ->secondLevel1
                  ->secondLevel2
    ->firstLevelB ->secondLevel3
                  ->secondLevel4

Ich werde versuchen, NSOutlineView zu unterteilen und neu zu schreibenreloadItem: inzwischen.

UPDATE 3

Ich habe einen Blick darauf geworfenNSOutlineView in Cocotron Ich hatte das Gefühl, dass der Code, den ich schreiben musste, um reloadItem zu überschreiben, ziemlich schwer sein würde. Jemand zur Bestätigung?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage