NSOutlineView reloadItem: nie działa
Próbuję uwolnić trochę napięcia na widokuNSOutlineView
dla których zmieniłem właściwość pojedynczego elementu i którą początkowo ładowałem po prostu dobrze[myOutlineView reloadData]
.
próbowałem[myOutlineView reloadItem: myOutlineViewItem]
ale nigdy nie dzwoni- (NSView *)outlineView:(NSOutlineView *)ov viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
w konsekwencji dane nie są aktualizowane.
-(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];
}
Czy coś mi umyka ?
AKTUALIZACJAJak wskazano w komentarzach, mój konspekt jest oparty na widoku.
AKTUALIZACJA 2Wypróbowanie niektórych rzeczy uświadomiło mi, że obiekt, który ładuję, jest obiektem drugiego poziomu (drzewo obiektów cf) i wywołującymreloadItem:firstLevelObject reloadChildren:YES
działa.
Czy byłoby możliwe, abyśmy mogli wywołać tylko reloadItem: na obiekcie pierwszego poziomu? Byłoby to bardzo nieefektywne w moim przypadku (mam tylko jeden przedmiot dwupoziomowy i mnóstwo drugiego poziomu)!
nil ->firstLevelA ->secondLevel1
->secondLevel2
->firstLevelB ->secondLevel3
->secondLevel4
Spróbuję podklasować NSOutlineView i przepisaćreloadItem:
w międzyczasie.
Przyjrzałem sięNSOutlineView w Cocotron aby zacząć i czułem, że kod, który musiałem napisać, aby zastąpić reloadItem, byłby ciężki. Ktoś, kto potwierdzi?