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

问题描述:

我认为标题几乎说明了这一切...我期待实现一个类似于所有上述程序中使用的标准OS X边栏的界面,并且我想知道是否有人有任何想法最简单的方法,即左手选择窗格的视图。真的,我不认为我甚至需要苹果应用程序中看到的分层组件,我只需要一个好看的平面选项列表,它决定了右侧窗格中显示的内容。如何在Cocoa/IB中实现类似于Mail/iTunes/Finder /等的边栏?

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

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

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

如果你想要揭示三角形,那么你会想使用NSOutlineView而不是NSTableView,但至少对于第一次去,我会坚持一个简单的NSTableView。

我也使用的模式是使NSTableView稍微比NSSplitView短,并在底部(添加,删除等)有按钮。我通常围绕核心数据构建程序,因此很容易将它们连接到创建/删除对象的方法,然后将NSTableView绑定到对象数组。

+0

这是如此启迪@matthew schinckel!谢谢 – swdev 2011-09-07 10:58:13

在Leopard中增加了对这类事物的直接支持。它被称为“来源列表”。

请参阅AppKit release notes。在文档中搜索NSTableViewSelectionHighlightStyleSourceList。

或者,拖出表格视图并在Interface Builder中选择Highlight: Source List

+2

您还需要实现outlineView:isGroupItem:delegate方法,以便为具有全部标题标题的行返回YES。 – 2008-10-28 00:39:54