Выполнить что-нибудь при запуске приложения? - PullRequest
2 голосов
/ 23 мая 2010

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

Так что в основном мне нужно обработать ' applicationDidFinishLaunching ' в моем классе, а также в делегате приложения.

Как мне это сделать?

1 Ответ

5 голосов
/ 23 мая 2010

NSApplication отправляет уведомление NSApplicationDidFinishLaunchingNotification, так что вы просто сможете зарегистрироваться для этого в своем классе:

- (void)awakeFromNib
{
    NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
    [nc addObserver:self
           selector:@selector(appDidLaunch:)
               name:NSApplicationDidFinishLaunchingNotification 
             object:nil];
}

- (void)appDidLaunch:(NSNotification*)notification
{
    NSLog(@"Blast off!");
}

Здесь есть общая закономерность: классы Какао, которые имеют методы делегата с сигнатурой метода, которая передает единственный параметр уведомления, такой как метод делегата ‑(void)applicationDidFinishLaunching:(NSNotification*)notification, равный NSApplication, также будут публиковать уведомление, когда метод делегата называется.

Например, NSWindow имеет много методов делегатов с таким типом подписи, таких как:

- (void)windowDidResize:(NSNotification *)notification

Если вы посмотрите на документы для этого метода, вы увидите, что уведомление, которое передается этому методу делегата, является NSWindowDidResizeNotification. Затем вы можете найти более подробную информацию об этом уведомлении в разделе уведомлений документа NSWindow.

Этот тип метода делегата часто используется, когда существует вероятность того, что более чем один объект будет заинтересован в информации о делегате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...