我在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完成上述所有操作,至少将Square Button添加到一组项目中?
注意:我枚举了基于NSURL协议的项目,因此该数组没有枚举它们的根目录。