我已经在 NSOutlineView 的“DataCell”视图中列出了这些项目,但我不知道如何将它们全部放入自定义根组中。我的意思是一组默认的 NSOutlineView 项目,但有一些子视图(例如按钮或图像)。还有一个,例如我有两组项目,但其中一组有子视图,第二个只有一个“隐藏”切换按钮,怎么能这样做呢?
- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item {
if (![item isKindOfClass:[FSEntity class]]) {
return [outlineView makeViewWithIdentifier:@"HeaderCell" owner:self];
} else {
NSTableCellView *cellView = [outlineView makeViewWithIdentifier:@"DataCell" owner:self];
cellView.textField.stringValue = [((FSEntity *)item) title];
return cellView;
}
}
我们需要以下方法来做到这一点?
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item
- (BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item
但是,使用这些功能创建的应用程序可以在 Tiger 和 Snow Leopard 上运行吗?还是我必须求助于基于单元格的表格视图?但是如何使用基于单元格的 NSOutlineView 完成上述所有操作,至少将方形按钮添加到项目组中?
注意:我根据 NSURL 的协议枚举了项目,因此该数组没有从中枚举它们的根目录。