Как Windows Work

NSWindow класс определяет объекты, управляющие и координирующие окна отображения приложения на экране. Сингл NSWindow объект соответствует самое большее одному экранному окну. Две основных функции NSWindow объект состоит в том, чтобы обеспечить область в который NSView объекты могут быть помещены и принять и распределить к надлежащим представлениям, события, которые пользователь провоцирует посредством действий с мышью и клавиатурой. Обратите внимание на то, что термин окно иногда относится к объекту Набора Приложения и иногда к дисплею сервера окна; то, какое значение предназначается, ясно дано понять в контексте. AppKit также определяет абстрактный подкласс NSWindowNSPanel— это добавляет поведение, более подходящее для вспомогательных окон.

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

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

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

Когда это создается, окно автоматически создает два представления: непрозрачное представление кадра, заполняющее прямоугольник кадра и рисующее границу, строку заголовка, другие периферийные элементы, и фон и прозрачное довольное представление, заполняющее прямоугольник содержания. Представление кадра и его периферийные элементы являются частными объектами, к которым Ваше приложение не может получить доступ непосредственно. Довольным представление является «самое высокое» доступное представление в окне; можно заменить представление содержания по умолчанию в целях собственного создания с помощью setContentView: метод. Окно определяет размещение довольного представление; Вы не можете расположить его с помощью NSView начинающиеся методы setFrame; необходимо использовать NSWindow методы размещения класса, как описано в Открытии и Закрытии окон.

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