NSOutlineView缩进问题

Gar*_*ary 6 cocoa objective-c nsoutlineview

我正在使用NSOutlineView对象来表示文件结构,并发现它不能正确缩进任何可扩展的子节点,尽管它会缩进不可扩展的子节点.

这是一张显示我的意思的照片:

NSOutlineView示例

在此示例中,"AnotherFolder"是"Folder2"的子级,但它不会与其他缩进文件一致缩进.奇怪的是,"AnotherFolder"的子"AnotherFile.java"确实缩进(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];
}
Run Code Online (Sandbox Code Playgroud)

spu*_*fle 7

尝试将大纲视图从" 大纲"视图更改为普通大纲视图.