Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

Знайте базовые объекты своего приложения

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

Какао упрощает создавать приложения, принимающие все соглашения и представляющие все питание OS X. Фактически, можно создать новый проект приложения Какао в XCode и не добавляя, что любой код имеет функциональное приложение. Такое приложение в состоянии вывести на экран свое окно (или создать новые документы) и реализует много стандартного поведения системы. И несмотря на то, что шаблоны XCode обеспечивают некоторый код, чтобы заставить это все произойти, объем кода, который они обеспечивают, минимален. Большая часть поведения предоставлена Какао. Код, который Вы пишете для своего приложения, определяет свое определенное появление и поведение и дифференцирует его от других приложений.

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

Стиль приложения определяет базовую архитектуру

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

  • Приложение утилиты единственного окна (Калькулятор)

    Эти типы приложений обычно обрабатывают эфемерные данные или управляют системными процессами и не создают или имеют дело с любыми документами или персистентными пользовательскими данными.

  • Приложение стиля библиотеки единственного окна (iPhoto)

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

    Приложения стиля библиотеки обычно не используют NSDocument объекты управлять их моделью данных. Эти объекты разработаны для мультиокна основанные на документе приложения.

  • Мультиокно основанное на документе приложение (TextEdit)

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

Необходимо выбрать основной стиль приложения рано в процессе проектирования, потому что тот выбор влияет на все, что Вы делаете позже. Единственные стили окна предпочтены во многих случаях, специально для разработчиков, приносящих приложения от iOS. Единственный стиль окна обычно приводит к более оптимизированному пользовательскому опыту, и он также упрощает для Вашего приложения поддерживать полноэкранный режим. Однако, если Ваше приложение работает экстенсивно с составными документами, стиль мультиокна может быть предпочтительным, потому что это обеспечивает больше связанной с документом инфраструктуры, чтобы помочь Вам реализовать свое приложение.

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

Базовые объекты для всех приложений какао

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

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

  Ключевые объекты рисунка 1 в приложении единственного окна

Таблица 1 описывает роли, которые играют объекты в схеме.

Таблица 1  базовые объекты используется всеми приложениями Какао

Объект

Описание

NSApplication объект

(Требуемые) Выполнения цикл событий и управляют взаимодействиями между Вашим приложением и системой. Вы обычно используете NSApplication класс, как, помещая любой объект пользовательского приложения связанный код в Вашего делегата приложения объект.

Делегат приложения объект

(Ожидаемый) пользовательский объект, который Вы обеспечиваете, который работает в тесном сотрудничестве NSApplication возразите, чтобы выполнить приложение и управлять переходами между различными состояниями приложения. Ваш делегат приложения объект должен соответствовать NSApplicationDelegate протокол.

Объекты модели данных

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

Контроллеры окна

Загрузите и управляйте единственным окном с его представлениями и координатой с системой для обработки стандартных способов поведения окна. Вы разделяете на подклассы NSWindowController управлять и окном и его содержанием.

Объекты окна

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

Окно является экземпляром NSWindow класс. Панель является экземпляром NSPanel класс (который является потомком NSWindow).

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

Скоординируйте загрузку единственной иерархии представления в Ваше приложение. Контроллеры представления сотрудничают с контроллером окна для представления содержания окна.

В OS X (в отличие от этого в iOS), контроллеры представления являются ассистентами контроллера окна, который в конечном счете ответственен за все, что входит в окно.

Объекты представления

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

Объекты управления

Представляйте стандартные системные средства управления, такие как кнопки, текстовые поля и таблицы. Большинство средств управления работает с Вашим кодом для управления взаимодействием с пользователем с содержанием приложения.

Можно узнать больше об архитектуре документа для приложений Какао в Руководстве по программированию Приложения Mac.

Дополнительные базовые объекты для приложений мультиокна

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

Рисунок 2 показывает отношения среди базовых объектов мультиокна основанное на документе приложение. Многие из тех же объектов в этом числе идентичны используемым приложением единственного окна. Основным различием является вставка NSDocumentController и NSDocument объекты между объектами приложения и объекты для управления пользовательским интерфейсом.

  Ключевые объекты рисунка 2 в приложении документа мультиокна

Таблица 2 описывает роль этих вставленных объектов. (Для получения информации о ролях других объектов в схеме посмотрите Таблицу 1.)

Таблица 2  Дополнительные объекты используется приложениями документа мультиокна

Объект

Описание

Объект контроллера документа

Создает и управляет всеми объектами документа приложения. Контроллер документа также управляет многими связанными с документом пунктами меню, такими как меню Open Recent и открытое, и сохраните команды. Это - объект NSDocumentController класс.

Объект документа

Управляет объектами данных, связанными с документом, и работает с другими объектами вывести на экран содержание документа в окне. Объект документа является экземпляром пользовательского подкласса NSDocument.

Завершение жизненного цикла и приложения приложения

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

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

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

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

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

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

Приложения OS X ведут себя похожими способами

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

Приложение Подарки его Пользовательский интерфейс Вместе с Другими Приложениями и Системой

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

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

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

  Windows рисунка 3 и меню, выведенные на экран приложениями и системой

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

Приложение обрабатывает события, происходящие в пользовательских действиях

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

Распределение и обработка событий являются заданием объектов респондента, которые являются объектами, наследовавшимися от NSResponder класс. Приложение, его окна и представления, окно и контроллеры представления и другие объекты являются всеми объектами респондента. Приложение диспетчеризирует событие окну, где это произошло. Объект окна, в свою очередь, передает событие к тому, что вызывают первым респондентом. В случае событий от нажатия мыши первый респондент обычно является объектом представления, в котором имели место касание или щелчок.

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

Руководство по Обработке событий какао предоставляет больше информации о респондентах, цепочке респондента и событиях обработки.