О табличных представлениях в приложениях OS X

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

../Art/IntroTable_2x.png

Табличное представление может иметь отдельный столбец или многократные столбцы, и оно позволяет вертикальную и горизонтальную прокрутку, выбор содержания и перетаскивание столбца. Каждая строка в табличном представлении имеет по крайней мере одну соответствующую ячейку, представляющую поле в сборе данных.

Сразу

Понимание структуры табличного представления и знание, как создать один, позволяют Вам создать приложения Mac, представляющие табличные данные привлекательным, функциональным способом.

Табличное использование набор классов для управления содержанием

Различные компоненты табличного представления — включая столбец, строку, заголовок и ячейку — каждый поддерживаются отличным NSView подкласс. Эти классы сотрудничают с NSTableView сам класс, чтобы вывести на экран содержание и включить способы поведения, такие как анимация, перестановка столбца, сортировка и выбор. И, потому что большинство таблиц использует NSView объекты представлять отдельные ячейки, просто разработать пользовательские представления ячейки в Интерфейсном Разработчике и поддерживать анимацию и управление столбцами.

Интерфейсный разработчик упрощает составлять таблицы

Используя Интерфейсного Разработчика, Вы добавляете табличное представление к окну или суперпредставление, добавляете и располагаете столбцы и указываете заголовки столбцов. Затем Вы обычно создаете прототипы представления ячейки что Ваше использование приложения для обеспечения расположения содержания для каждой ячейки таблицы. (Если Вы работаете с NSCell- основанная таблица, Вы создаете подклассы NSCell для каждой ячейки таблицы.) Много аспектов таблиц могут быть установлены непосредственно в Интерфейсном Разработчике, что означает, что можно избежать писать дополнительный код.

Таблицы могут получить данные двумя способами

Необходимо предоставить данные табличному представлению. Можно сделать это одним из двух способов:

Для предоставления данных программно Вы создаете класс, соответствующий NSTableViewDataSource протокол и реализация метод, обеспечивающий строку и данные столбца в соответствии с требованиями.

Используйте привязку Какао для создания отношения между экземпляром класса контроллера, управляющим взаимодействием между объектами данных и табличным представлением. При использовании подхода привязки Вы не создаете класс источника данных для того, чтобы предоставить данные или поддерживать редактирование.

Методы, которые Вы используете, чтобы создать и заполнить таблицу, отличаются в зависимости от того, является ли таблица NSView базируемый или NSCell основанный.

Появление и способы поведения таблицы настраиваемы

Можно настроить различные аспекты появления таблицы, включая цвет фона, цвет строки и цвет линий сетки. Можно также указать, как таблица должна вести себя, когда пользователи делают выборы или табличные данные вида. (Методы, которые Вы используете для изменения появления и поведения таблицы, являются тем же для обоих NSView- базируемый и NSCell- основанные таблицы.)

Находящиеся в NSCell таблицы все еще поддерживаются

В OS X v10.6 и ранее, каждая ячейка табличного представления потребовалась, чтобы быть подклассом NSCell. Этот подход вызвал ограничения, разрабатывая сложные пользовательские ячейки, часто требуя, чтобы Вы записали Ваше собственное NSCell подклассы. Обеспечивание анимации, такой как прогресс представления, было также чрезвычайно трудным. В этом документе эти типы табличных представлений упоминаются как NSCell- основанные табличные представления. NSCell- основанные таблицы продолжают поддерживаться в OS X v10.7 и позже, но они обычно используются только для поддержки устаревшего кода. В целом необходимо использовать NSView- основанные таблицы.

Несмотря на то, что Вы используете те же Интерфейсные методы Разработчика для создания обоих NSView- базируемый и NSCell- основанные табличные представления (и добавить столбцы к таблице), код, требуемый обеспечить отдельные ячейки, заполняют табличное представление и поддерживают программируемое редактирование, отличается в зависимости от табличного типа. Кроме того, Вы используете различные методы привязки Какао в зависимости от того, работаете ли Вы с NSView- базируемый или NSCell- основанная таблица.

Предпосылки

Разработать успешно с NSTableView класс, Вам нужно сильное схватывание шаблона разработки Контроллера представления Модели. Для узнавания больше об этом фундаментальном образце посмотрите Контроллер представления Модели в Какао (OS X).

NSTableView экземпляры могут использоваться с привязкой Какао, обоими в NSView- базируемый и NSCell- основанные таблицы. Однако убедительно предполагается полностью понять программируемый интерфейс табличного представления прежде, чем начать использовать более усовершенствованную привязку Какао. Для краткого обзора привязки посмотрите привязку Какао; для узнавания больше считайте Привязку Какао, Программируя Темы.

Для приобретения знаний о рекомендуемом появлении и поведении табличных представлений в пользовательском интерфейсе см. Инструкции по Интерфейсу пользователя OS X.

См. также

Следующие проекты примера кода поучительны при разработке собственных реализаций табличного представления: