Проблема с отступом NSOutlineView

Я использую объект NSOutlineView для представления файловой структуры и обнаружил, что он не будет правильно делать отступы для всех расширяемых дочерних элементов, хотя он будет делать отступы для дочерних элементов, которые не являются.

Вот изображение чтобы показать, что я имею в виду:

NSOutlineView example

В этом примере «AnotherFolder» является дочерним элементом «Folder2», но он не имеет отступа в соответствии с другими файлами с отступом. Довольно любопытно, что дочерний элемент «AnotherFile.java» для «AnotherFolder» делает отступ правильно (2 уровня).

Я безуспешно пытался установить такие свойства, как «indentationFollowsCells». Кажется, это должно быть очень просто, но я не могу решить эту проблему.

Спасибо!

Изменить: Дополнительная информация по запросу:

Я использую протокол NSOutlineViewDataSource для реализации, вот код связанный с этим:

- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
    return item;
}

- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item {
    NSMutableDictionary* dict;
    if(item == nil) {
        dict = fileTree;
    } else {
        dict = [((MyFile*) item) children];
    }

    NSArray* keys = [dict allKeys];
    NSArray* sorted = [keys sortedArrayUsingSelector:@selector(compare:)];
    NSString* key = [sorted objectAtIndex:index];
    return [dict objectForKey:key];
}

- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
    return [[item children] count] > 0;
}

- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item {
    if(item == nil) {
        return [fileTree count];
    }
    return [[item children] count];
}
6
задан Gary 8 August 2011 в 23:25
поделиться