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