О табличных представлениях в приложениях OS X
Табличное представление выводит на экран данные для ряда связанных записей со строками, представляющими отдельные записи и столбцы, представляющие атрибуты тех записей. Например, в таблице записей сотрудника, каждая строка представляет одного сотрудника, и столбцы могли бы представлять атрибуты сотрудника, такие как фамилия, имя и местоположение станции.
Табличное представление может иметь отдельный столбец или многократные столбцы, и оно позволяет вертикальную и горизонтальную прокрутку, выбор содержания и перетаскивание столбца. Каждая строка в табличном представлении имеет по крайней мере одну соответствующую ячейку, представляющую поле в сборе данных.
Сразу
Понимание структуры табличного представления и знание, как создать один, позволяют Вам создать приложения 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.
См. также
Следующие проекты примера кода поучительны при разработке собственных реализаций табличного представления: