Как реализовать боковую панель, похожую на Mail/iTunes/Finder/etc в Cocoa/IB?
Я думаю, что название в значительной степени говорит обо всем этом... Я ищу реализацию интерфейса, подобного стандартной боковой панели OS X, используемой во всех вышеупомянутых программах, и мне интересно, есть ли у кого-нибудь мысли о это самый простой способ сделать это, а именно, какой вид использовать для панели выбора левой руки. На самом деле я не думаю, что мне даже нужен иерархический компонент, как показано в приложениях для Apple. Мне просто нужен хороший список вариантов, которые определяют, что показано в правой панели.
Очевидный старт - это вертикальный раскол, но помимо этого я не совсем уверен, куда идти. Представление коллекции только с одним столбцом или что-то в этом роде?
Ответы
Ответ 1
Я сделал несколько приложений, которые используют аналогичную настройку.
Обычно я использую NSSplitView с одним столбцом NSTableView на левой панели. Не забудьте отключить заголовки и сделать их отображаемыми как стиль "Source View".
Если вы хотите раскрывать треугольники, тогда вы захотите использовать NSOutlineView вместо NSTableView, но, по крайней мере, для первого запуска, я придерживаюсь простого NSTableView.
Образец, который я также использую, должен сделать NSTableView немного короче, чем NSSplitView, и иметь кнопки внизу (добавить, удалить и т.д.). Я обычно создавал программу вокруг Core Data, поэтому легко подключить их к методам создания/удаления объектов, а затем привязать NSTableView к массиву объектов.
Ответ 2
В Leopard была добавлена прямая поддержка такого рода вещей. Он назывался "исходным списком".
См. заметки о выпуске AppKit. Найдите в документе NSTableViewSelectionHighlightStyleSourceList.
Или, перетяните представление таблицы и выберите Highlight: Source List
в Interface Builder.