首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSOutlineView压痕问题

NSOutlineView压痕问题
EN

Stack Overflow用户
提问于 2011-08-08 08:02:45
回答 2查看 2.2K关注 0票数 6

我使用一个NSOutlineView对象来表示一个文件结构,我发现它不会正确地缩进任何可扩展的子文件,尽管它会缩进不是的子文件。

这里有张照片来展示我的意思:

在本例中,"AnotherFolder“是"Folder2”的子级,但它不与其他缩进文件缩进。奇怪的是,"AnotherFile.java“的子"AnotherFolder”可以正确地缩进(2级)。

我尝试过设置属性,如"indentationFollowsCells“,但没有效果。这似乎应该很简单,但我解决不了。

谢谢!

编辑:根据请求提供一些额外信息:

我正在使用NSOutlineViewDataSource协议来实现,下面是与此相关的代码:

代码语言:javascript
复制
- (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];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-10 04:01:44

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

票数 7
EN

Stack Overflow用户

发布于 2020-08-09 13:37:13

我现在碰到了这个问题,我觉得有点奇怪,在这篇文章发表九年之后,这个问题仍然存在。

这种行为是在Source样式中完成的:标准内容的第一行与标头单元格对齐,而不是缩进,因此所有内容都移到了一个级别上。

如果使用标头单元格,则需要这种行为,一切都很好。如果您不想使用标头单元格,那么不使用SourceList是您唯一的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6979212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档