NSOutlineView reloadItem: не имеет никакого эффекта
Я пытаюсь снять напряжение на основе представленияNSOutlineView
для которого я изменил одно свойство элемента и который я изначально перезагрузил просто отлично, используя[myOutlineView reloadData]
.
Я пытался[myOutlineView reloadItem: myOutlineViewItem]
но это никогда не вызывает- (NSView *)outlineView:(NSOutlineView *)ov viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
и, следовательно, данные не обновляются.
-(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];
}
Я что-то здесь упускаю?
ОБНОВИТЬКак указано в комментариях, мой outlineView основан на представлении.
ОБНОВЛЕНИЕ 2Попробовав некоторые вещи, я понял, что объект, который я загружаю, является объектом второго уровня (дерево объектов cf) и вызываетreloadItem:firstLevelObject reloadChildren:YES
работает.
Возможно ли, чтобы мы могли вызывать reloadItem: только для объекта первого уровня? Это было бы крайне неэффективно в моем случае (у меня есть только один предмет двух уровней и много второго уровня)!
nil ->firstLevelA ->secondLevel1
->secondLevel2
->firstLevelB ->secondLevel3
->secondLevel4
Собираюсь подкласс NSOutlineView и переписатьreloadItem:
в это время.
Я посмотрел наNSOutlineView в Cocotron чтобы начать и почувствовать, что код, который мне нужно было написать для перезаписи reloadItem, будет довольно тяжелым. Кто-нибудь, чтобы подтвердить?