Должен ли я использовать NSTableView?
Да.
Как насчет NSCollectionView?
Да.
Это зависит от того, что вы делаете. Если вы отображаете одномерную коллекцию объектов, особенно в форме, подобной представлению значков Finder, вам нужен NSCollectionView. Если вы отображаете таблицу, в которой каждый столбец отображает аспект каждой строки (например, строки = люди; столбцы = имя, заголовок, отдел и т. Д.), Вам нужен NSTableView.
В NSCollectionView вы можете установить минимальный и максимальный размер элемента в качестве свойства представления, а также можно установить размер каждого элемента в качестве свойства элемента.
В NSTableView вы можете установить высоту строки, являясь делегатом табличного представления и отвечая на tableView:heightOfRow:
. Если вы хотите вернуть обычную высоту строки, запросите в табличном представлении rowHeight
и верните ее; если вы хотите вернуть необычную высоту, сделайте это.
Лично мне проще работать с NSTableView. Вы можете установить большинство, если не все, в IB; единственное время, когда вам нужно написать какой-либо код, - это пользовательский рисунок, двойной щелчок или, да, переменная высота строки.
В качестве примера списка дел я бы использовал NSTableView с ячейкой кнопки-флажка в одном столбце для свойства done.