NSApplication

Объект NSApplication управляет циклом обработки сообщений приложения в дополнение к ресурсам, используемым всеми объектами приложения.

Класс NSApplication представляет центральную основу для выполнения вашего приложения.

Каждое приложение должно иметь только один экземпляр NSApplication (или его подкласса). Функция main() Вашего приложения создает экземпляр этого класса вызовом метода класса sharedApplication, затем загружает nib файл основного окна и запускает цикл обработки сообщения. При создании приложения в Xcode метод main создается автоматически.

NSApp - глобальная переменная, указывающая на объект NSApplication Вашего приложения.

Часто используемые функции:

keyWindow возвращает объект NSWindow, который является ключевым окном.
mainWindow возвращает главное окно приложения.
runModalForWindow: запускает модальный цикл обработки сообщений для заданного окна.

NSApplication выполняет важную задачу получения событий из окна сервера и распространения их на соответствующие объекты NSResponder. NSApp переводит событие в объект NSEvent, и переправляет NSEvent объект дальше к объекту NSWindow. Все события клавиатуры и мыши переходят непосредственно к объекту NSWindow, связанному с событием. Единственное исключение из этого правила, если нажата клавиша Command, при нажатии происходит событие, на которое, каждый объект NSWindow имеет возможность отреагировать. Когда NSWindow объект получает объект NSEvent из NSApp, он распространяет его на объекты, по иерархии его видов.

Начиная с Mac OS X 10.6 и выше Cocoa вводит протокол NSApplicationDelegate, поддержку которого настраивает Xcode при создании нового проекта Cocoa Application. Реализовывая необходимые функции данного протокола, можно с невероятной легкостью настроить поведение Вашего приложения.

Вы можете назначить делегата NSApp. Делегат отвечает на определенные сообщения от имени NSApp. Некоторые из этих сообщений, такие как application:openFile: запрашивают делегат на выполнение действий. Другое сообщение, applicationShouldTerminate:, позволяет делегату определить, следует ли завершить приложение. NSApplication класс посылает эти сообщения прямо к своему делегату.

NSApp также посылает сообщения уведомлений в центр уведомлений приложения по умолчанию. Любой объект может зарегистрироваться для получения одного или нескольких уведомлений, размещенных NSApp, отправив сообщение addObserver:selector:name:object: в центр уведомлений по умолчанию (экземпляр класса NSNotificationCenter). Делегат NSApp регистрируется автоматически получать такие уведомления, если он реализует некоторые методы делегата. Например, NSApp посылает уведомления, когда он собирается запустить приложение и, когда уже запустил приложение (NSApplicationWillFinishLaunchingNotification и NSApplicationDidFinishLaunchingNotification). Делегат имеет возможность ответить на эти уведомления путем реализации методов applicationWillFinishLaunching, и applicationDidFinishLaunching. Если делегат хочет быть проинформирован о событиях то, он реализует оба метода. Если ему нужно знать только, что приложение закончило запуск, он реализует только applicationDidFinishLaunching. Последний метод Xcode 4 создает автоматически.

Реализация следующих методов может оказаться весьма полезной

МетодОписание
applicationShouldTerminateAfterLastWindowClosed: Если возвращает YES, то закрывает приложение при закрытии последнего окна приложения.
applicationDockMenu: Возвращает объект NSMenu, используемый в качестве меню значка приложения в доке. Меню дока также можно настроить в Interface Builder.
– applicationWillHide:
– applicationDidHide:
Вызываются если приложение должно свернуться или уже свернуто соответственно
– applicationWillUnhide:
– applicationDidUnhide:
Вызываются если приложение должно отобразиться из свернутого положения или уже отображено соответственно

У Вас в принципе не должно оказаться причин для создания подкласса NSApplication, так как Cocoa предоставляет массу других возможностей для настройки Вашего приложения.

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