刚刚进入 NSOutlineViews 并看到它们是一个有用的控件。
是否可以将Xib显示为根项?
可炸食品。
是的,当您使用基于视图的NSOutlineView
. 首先使用registerNib:forIdentifier: 注册要为单元格显示的笔尖:(windowDidLoad
在窗口控制器中是一个好地方,awakeFromNib 也是一种可能)。
NSNib *cellNib = [[NSNib alloc] initWithNibNamed:@"MyCell" bundle:nil];
[self.outlineView registerNib:cellNib forIdentifier:@"MyIdentifier"];
接下来,您outlineView:viewForTableColumn:item:
将使用先前指定的标识符获得一个(可能回收的)nib 实例:
- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
NSView *cellView = [outlineView makeViewWithIdentifier:@"MyIdentifier" owner:self];
// optional configuration here
return cellView;
}
我有一篇博文 + mac app 示例代码来演示这一点。
是的。您只需将其切换为使用基于视图的单元格。
在您的委托中,实施outlineView:viewForTableColumn:item:
以提供正确的 XIB。
是的,它是可能的,这是Mac OS XNSOutlineView
中另一个很棒的可视化控件。作为 NSTableView 的后代,它代表分层数据。您可以折叠和展开节点,查看父母和他们的孩子。在本文中,我们将描述如何使用 NSOutlineView 来显示 DASchema 对象,它本质上是树状数据的一个很好的例子。
欲了解更多信息,请查看这里