Хотя NSTableView
может отображать строки группы, к сожалению, от сглаживания иерархии зависит делегат или источник данных.Он не понимает альтернативную семантику источника данных, такую как UITableView
UITableViewStyleGrouped
, и NSArrayController
не имеет эквивалентов для методов секций NSFetchedResultsController
.
Одна опция - NSOutlineView
, которая предназначенадля отображения сколь угодно глубоких иерархических данных, но это, вероятно, создает больше работы, чем необходимо для простой двухуровневой структуры.(Вы можете привязать схематическое представление к NSTreeController
, но контроллер дерева плохо документирован, а для загрузки он плохо спроектирован.)
Итак, вот что я предлагаю:
- Напишите свой собственный класс контроллера, который реализует
NSTableViewDelegate
и NSTableViewDataSource
. - . Используйте один контроллер массива, который сортирует по приоритету, и напишите свой собственный код, чтобы сместить индексы строк для размещения заголовков разделов.
- Возврат
YES
из tableView:isGroupRow:
в заголовках разделов. - Не используйте привязки для этого.
Вы также можете искать многоразовые привязки-способный контроллер от третьего лица.