Виды (View's)

Mac OS X

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

Роль NSView

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

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

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

Cocoa-дополнения класса NSView

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

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

Контейнер видов

NSTabView + NSBox Mac OS X

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

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

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

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

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

Элементы управления

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

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

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

Некоторые подклассы элементов управления на самом деле имеют "view" в их названии, которое может привести к путанице. Классы NSImageView, NSTableView и NSOutlineView являются подклассами NSControl, хотя они наследуют косвенно NSView. Это потому, что эти объекты полагаются на ячейки обеспечивая большую часть своей функциональности, так, что они являются подклассами NSControl а не NSView. Обратите внимание, что классы NSTableView и NSOutlineView не предоставляют их прокрутки напрямую, они установлены в качестве вида документа для вида прокрутки.

Вне-Quartz графические среды

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

 
 
homeЗаметили ошибкукарта сайта 
   Made on a Mac