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
.
Этот тип метода делегата часто используется, когда существует вероятность того, что более чем один объект будет заинтересован в информации о делегате.