Обновление:
NSTableView теперь поддерживает строки на основе вида с переменной высотой:
- (NSTableViewRowSizeStyle)rowSizeStyle
Возвращаемое значение
Стиль стиля строки. См. NSTableViewRowSizeStyle
о поддерживаемых параметрах.
Обсуждение
Стиль размера строки можно изменять построчно, вызывая метод делегата tableView:heightOfRow:
, если он реализован.
rowSizeStyle
по умолчанию NSTableViewRowSizeStyleCustom
. NSTableViewRowSizeStyleCustom
указывает на использование rowHeight таблицы вместо предопределенных системных значений.
Как правило, rowSizeStyle
всегда должно быть NSTableViewRowSizeStyleCustom
за исключением «списков источников». Чтобы реализовать переменные высоты строк, установите значение NSTableViewRowSizeStyleCustom
и внедрите tableView:heightOfRow:
в делегате.
Наличие
Доступный в OS X v10.7 и позже.
Оригинальный ответ:
Подход, более современный, чем взлом представления, NSTableView может быть одним из следующих:
http://github.com/sdegutis/SDListView
SDListView - клон NSCollectionView, но с
элементы переменной высоты и только с использованием
один столбец.
http://github.com/uliwitness/PXListView
PXListView - Оптимизированный элемент управления списком для Mac
OS X 10.5 и выше. Это было создано
после того, как я написал этот пост на
предмет.
PXListView лицензируется в соответствии с новым
Лицензия BSD.
PXListView использует аналогичные оптимизации
как UITableView для iPhone, по
ставить в очередь и удалять из очереди NSViews, которые
используются для отображения строк, чтобы
сохранить низкий объем памяти, когда есть
большое количество строк в
список, но все еще позволяет каждой строке
быть представлен NSView, который
проще, чем иметь дело с клетками.
Архитектура управления
на основе списка элементов управления, которые
присутствуют как в Tweetie (Mac), так и в
Эхофон (Mac).
Проект все еще очень большая работа
в процессе, и как таковой нет
документация существует в настоящее время.
[Редактировать: если это не было очевидно: приведенные выше описания классов - это, конечно, цитаты;) Где «я» в последнем фактически означает «Алекс Розанский», а не я.]