Что такое представления?
В Какао представление является прямоугольным разделом экрана, содержавшегося в окне. Это ответственно за обработку всего получения и инициируемых пользователями событий в его кадре. Какао обеспечивает 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, а не платформы Какао.