Подтвердить что ты не робот

Как реализовать боковую панель, похожую на Mail/iTunes/Finder/etc в Cocoa/IB?

Я думаю, что название в значительной степени говорит обо всем этом... Я ищу реализацию интерфейса, подобного стандартной боковой панели OS X, используемой во всех вышеупомянутых программах, и мне интересно, есть ли у кого-нибудь мысли о это самый простой способ сделать это, а именно, какой вид использовать для панели выбора левой руки. На самом деле я не думаю, что мне даже нужен иерархический компонент, как показано в приложениях для Apple. Мне просто нужен хороший список вариантов, которые определяют, что показано в правой панели.

Очевидный старт - это вертикальный раскол, но помимо этого я не совсем уверен, куда идти. Представление коллекции только с одним столбцом или что-то в этом роде?

4b9b3361

Ответ 1

Я сделал несколько приложений, которые используют аналогичную настройку.

Обычно я использую NSSplitView с одним столбцом NSTableView на левой панели. Не забудьте отключить заголовки и сделать их отображаемыми как стиль "Source View".

Если вы хотите раскрывать треугольники, тогда вы захотите использовать NSOutlineView вместо NSTableView, но, по крайней мере, для первого запуска, я придерживаюсь простого NSTableView.

Образец, который я также использую, должен сделать NSTableView немного короче, чем NSSplitView, и иметь кнопки внизу (добавить, удалить и т.д.). Я обычно создавал программу вокруг Core Data, поэтому легко подключить их к методам создания/удаления объектов, а затем привязать NSTableView к массиву объектов.

Ответ 2

В Leopard была добавлена ​​прямая поддержка такого рода вещей. Он назывался "исходным списком".

См. заметки о выпуске AppKit. Найдите в документе NSTableViewSelectionHighlightStyleSourceList.

Или, перетяните представление таблицы и выберите Highlight: Source List в Interface Builder.