Объект окна

Объект окна представляет графическое содержание в прямоугольной области экрана и играет роль в распределении событий. Этот объект, наследовавшийся от NSWindow класс платформы AppKit или UIWindow класс платформы UIKit, представляет окно приложения. Объекты окна (или, просто, окна) являются по существу контейнерами представлений и связали главную ответственность с получением и обработкой событий, выполняемой теми представлениями.

Windows Coordinate Drawing и распределяет события

Окно в корне иерархии представлений с верхними представлениями в иерархии, включающей другие представления. Когда окно выводит на экран свое содержание, оно продолжает вниз эту иерархию, прося, чтобы каждое представление поочередно нарисовало себя в контексте его суперпредставления. Представление наверху иерархии является довольным представление. Довольное представление занимает всю область получения окна, служа фоном для всех других представлений в окне. (Для UIWindow объекты этот довольный представление являются самим окном.)

Art/window_object_OSX.png

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

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

Несмотря на то, что окна в Касании Какао (iOS) и в Какао (OS X) распределяют эту общую ответственность, у них есть различные характеристики и способы поведения. Различия происходят из различных пользовательских сред — т.е. настольная система по сравнению с карманным устройством с ограниченной экранной областью. Различные пользовательские среды приводят к различным образцам использования и требованиям.

Объекты окна в OS X

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

Объект окна на OS X может иметь несколько различных состояний:

  • Основное или ключевое окно: главное окно является основным вниманием пользовательских действий для приложения. Ключевое окно является текущим фокусом для событий клавиатуры (например, это содержит текстовое поле, которое пользователь печатает). Различные окна в приложении могут иметь основной и состояние окна. Окно может иметь и основное и ключевое состояние одновременно.

  • Активное или неактивное окно: Активные окна являются текущим фокусом пользовательского внимания. Если окно неактивно, оно рисует себя по-другому для указания этого состояния. Пользователи должны щелкнуть по нему для создания его активным снова. Если само приложение неактивно, его окна неактивны.

Приложения в OS X могут иметь многократные окна. С основанным на документе приложением каждый документ имеет свое собственное окно. В дополнение к главному окну приложения (или окна), все приложения могут иметь вторичные окна или панели для действий, таких как выбор цветов или установка установок приложения. NSPanel объекты (или, просто, панели) представляют вторичные окна, поддерживающие приложение или документ в некотором роде. Когда приложение становится неактивным, они могут стать ключевым окном, но никогда главным окном и обычно удаляются из экрана. Приложение может также выполнить окно модально, ограничив ввод тем окном, пока пользователь не выполняет задачу.

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

Объекты окна в iOS

A UIWindow объект является специальным представлением с ограниченной ролью (по сравнению с a NSWindow объект). Несмотря на то, что приложения для iOS могут технически иметь больше чем одно окно с одним многоуровневым поверх другого, условно они ограничиваются единственным окном. Окно занимает весь экран и, потому что это не имеет никакого заголовка, средств управления или других украшений также, как и окна на OS X, этим не может управлять пользователь. Во время запуска приложение или создает это окно и добавляет его представления, или это загружает окно и представления от файла пера. После отображения окна редко необходимо обращаться к нему снова.

Категорическое обсуждение

    Руководство по программированию окна

Необходимые как условие статьи

    (Ни один)

Проекты примера кода

  • RoundTransparentWindow