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

在本例中,"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];
}发布于 2011-08-10 04:01:44
尝试将大纲视图从源大纲视图更改为普通大纲视图。
发布于 2020-08-09 13:37:13
我现在碰到了这个问题,我觉得有点奇怪,在这篇文章发表九年之后,这个问题仍然存在。
这种行为是在Source样式中完成的:标准内容的第一行与标头单元格对齐,而不是缩进,因此所有内容都移到了一个级别上。
如果使用标头单元格,则需要这种行为,一切都很好。如果您不想使用标头单元格,那么不使用SourceList是您唯一的选择。


https://stackoverflow.com/questions/6979212
复制相似问题