2015-07-09 2 views
1

В чем основное отличие между табличными представлениями на основе ячеек и представлений в какао.View and Cell based NSTableView

Понятное дело, что у меня есть табличные представления, основанные на ячейках, в основном используются для отображения строк и представления, основанных на пользовательских ячейках. События пользователя, такие как перетаскивание строк, выбор и т. Д., Могут обрабатываться на основе представления.

cell based tableviews use objectValueForTableColumn: метод и таблицы, основанные на представлении, используют viewForTableColumn: method.

Мое понимание правильно ?. Или любые другие проблемы с дизайном между этими табличными представлениями. Когда нужно идти на основе ячейки и когда идти на просмотр.

Заранее спасибо

ответ

4

короткий ответ:

клетка может содержать только один элемент пользовательского интерфейса, как текст, изображение ячейки вида ячейку, кнопку кювету и несколько больше. Способность настройки довольно плохая.

A вид может содержать несколько элементов пользовательского интерфейса, а также другие виды. Возможность настройки почти бесконечна.

компания Apple рекомендует использовать всегда смотреть на основе представления таблиц

+0

Эффективное пояснение !!!. Еще один вопрос. NSTableCellView используется для отображения изображения и текстового поля на ячейку в виде таблицы. Так этот класс используется для таблиц, основанных на просмотре? – Chandan

+0

Действительно, существует базовый класс с одним NSTextView и один с NSTextView и NSImageView. Подкласс для добавления пользовательских элементов настоятельно рекомендуется. – vadian

3

NSCell более легкий вес и объект был решением, когда это было проблемой, чтобы иметь слишком много объектов NSView. Подумайте больше, чем десять лет назад. Ячейки устарели. Используйте виды.

+0

NSCell также является блестящей идеей, основанной на производительности, на том, как иметь только один объект в памяти для каждого типа элементов и, таким образом, иметь возможность прокручивать миллионы строк для той же (минимальной) стоимости дюжины строк. NSCell подобен визуальному шаблону, который не имеет собственных данных и не имеет никакой позиции. NSTableView будет (в цикле) перемещать ячейку, обновлять ее указатель на правильные данные и указывать ей просто нарисовать себя. Это волшебство. –