Что такое представления?

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

Роль NSView

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

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

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

Предоставленные какао классы представления

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

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

Контейнерные представления

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

NSScrollView класс выводит на экран часть содержания представления, это является слишком большим, чтобы быть выведенным на экран в окне. Это координирует много других представлений и средств управления для обеспечения его функциональности. Прокрутка скроллеры представления, экземпляры NSScroller класс, позвольте пользователю прокручивать документ. Представление содержания представления прокрутки, экземпляр NSClipView класс, фактически управляет расположением и перерисовкой довольного представление как прокрутки содержания представления прокрутки. NSRulerView класс обеспечивает горизонтальные и вертикальные линейки, следующие за прокруткой представления документа. Все эти представления сотрудничают для обеспечения прокрутки для приложения.

Текстовая система

NSTextView класс является фронтэндом к текстовой системе Какао. Это составляет текст, которым управляют несколько базовых и классов контроллера модели, и обрабатывает пользовательские события, чтобы выбрать и изменить его текст. Текстовые классы превышают большинство других классов в Наборе Приложения в богатстве и сложности их интерфейса. NSTextView подкласс NSText, который является поочередно подклассом NSView. Приложения используют NSTextView класс, а не NSText. Посмотрите текстовое Руководство по архитектуре Какао для получения дополнительной информации о текстовой системе Какао.

Когда используется в иерархии представления, NSTextView экземпляр обычно устанавливается как представление документа представления прокрутки. Для простых элементов интерфейса стиля текстового поля Какао определяет много более простых текстовых средств управления, включая NSTextField класс.

Средства управления

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

Действие средств управления как контейнеры для легких объектов вызвало ячейки. Ячейки фактически ответственны за большинство визуального представления и обработки событий, которую обеспечивают средства управления. Эта делегация позволяет ячейкам быть снова использованными в более сложных объектах пользовательского интерфейса. Например, экземпляр NSTextFieldCell класс используется NSTextField экземпляр, чтобы вывести на экран текст и реагировать на пользовательские редактирования. Тот же самый NSTextFieldCell класс также используется NSTableView экземпляр, чтобы позволить редактировать данных в столбце. Эта делегация ответственности является одним из ключевых различий между средствами управления и представлениями.

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

Некоторые подклассы управления фактически имеют «представление» на свое имя, которое может сбить с толку. NSImageView, NSTableView, и NSOutlineView классы являются всеми подклассами NSControl, несмотря на то, что они наследовались косвенно от NSView. Именно, потому что эти объекты полагаются на ячейки для обеспечения большой части их функциональности, они - подклассы NSControl вместо NSView. Обратите внимание на то, что NSTableView и NSOutlineView классы не обеспечивают свою прокрутку непосредственно; они установлены как представление документа представления прокрутки.

Некварцевые графические среды

NSView класс поддерживает стандартную среду получения в OS X, Кварцевой графической среде. Однако Какао также поддерживает несколько некварцевых сред рисования для дополнительной функциональности и совместимости. NSOpenGLView класс позволяет приложению представлять содержание с помощью OpenGL. Приложение разделяет на подклассы NSOpenGLView и переопределения drawRect: метод для отображения содержания OpenGL. В отличие от его суперкласса, NSOpenGLView класс не поддерживает подпредставления. QTMovieView подкласс NSView это может использоваться, чтобы вывести на экран, отредактировать, и управлять фильмами в формате QuickTime. QTMovieView класс является частью платформы Набора QuickTime, а не платформы Какао.