如何在Cocoa/IB中实现类似于Mail/iTunes/Finder/etc的边栏?

如何在Cocoa/IB中实现类似于Mail/iTunes/Finder/etc的边栏?,cocoa,interface-builder,Cocoa,Interface Builder,我认为这个标题几乎说明了一切。。。我希望实现一个类似于上面提到的所有程序中使用的标准OSX侧边栏的界面,我想知道是否有人对最简单的方法有什么想法,即左手选择窗格使用什么视图。实际上,我甚至不认为我需要苹果应用程序中的层次结构组件,我只需要一个好看的平面选择列表,它决定了右侧窗格中显示的内容 最明显的开始是一个垂直分割布局视图,但除此之外,我不完全确定该去哪里。只有一列或类似列的集合视图?我已经完成了一些使用类似设置的应用程序 我通常使用NSSplitView,在左窗格中有一列NSTableVie

我认为这个标题几乎说明了一切。。。我希望实现一个类似于上面提到的所有程序中使用的标准OSX侧边栏的界面,我想知道是否有人对最简单的方法有什么想法,即左手选择窗格使用什么视图。实际上,我甚至不认为我需要苹果应用程序中的层次结构组件,我只需要一个好看的平面选择列表,它决定了右侧窗格中显示的内容


最明显的开始是一个垂直分割布局视图,但除此之外,我不完全确定该去哪里。只有一列或类似列的集合视图?

我已经完成了一些使用类似设置的应用程序

我通常使用NSSplitView,在左窗格中有一列NSTableView。不要忘记禁用标题,并将其显示为“源代码视图”样式

如果您想要公开三角形,那么您将希望使用NSOutlineView而不是NSTableView,但至少在第一步,我会坚持使用简单的NSTableView


我还使用了一种模式,使NSTableView略短于NSSplitView,并在底部有按钮(添加、删除等)。我通常围绕核心数据构建程序,因此很容易将这些方法连接到创建/删除对象的方法,然后将NSTableView绑定到对象数组。

Leopard中添加了对此类内容的直接支持。它被称为“源列表”

请看地图。在文档中搜索NSTableViewSelectionHighlightStyleSourceList


或者,拖出一个表视图,并在Interface Builder中选择“高亮显示:源列表”。

您还需要实现outlineView:isGroupItem:delegate方法,以对具有all caps标题的行返回“是”。