我正在使用 NSOutlineView 对象来表示文件结构,我发现它不会正确缩进任何可扩展的子项,但它会缩进不是的子项。
用一张图来说明我的意思:
在此示例中,“AnotherFolder”是“Folder2”的子项,但它的缩进与其他缩进文件不一致。奇怪的是,“AnotherFolder”的子“AnotherFile.java”确实正确缩进(2 级)。
我已尝试设置诸如“indentationFollowsCells”之类的属性,但无济于事。这看起来应该很简单,但我无法解决。
谢谢!
编辑:根据要求提供一些额外信息:
我正在使用 NSOutlineViewDataSource 协议(protocol)来实现,这里是相关的代码:
- (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];
}
最佳答案
尝试将大纲 View 从源大纲 View 更改为普通大纲 View 。
关于objective-c - NSOutlineView 缩进问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6979212/