Od Xcode 3.2 szablon aplikacji Mac jest również dołączony do delegata aplikacji, który ma taką metodę.
Aby ustawić to w projekcie utworzonym przed Xcode 3.2, utwórz nową klasę dla delegata, który będzie instancją. Zazwyczaj nazywam moje "AppDelegate". Zrobisz to, klikając prawym przyciskiem myszy grupę Klasy i wybierając "Dodaj plik", a następnie wybierając szablon pliku podklasy Cocoa NSObject.
Otwórz właśnie utworzony nagłówek (AppDelegate.h). Daj mu dowolne zmienne instancji, które chcesz. Następnie naciśnij Go to Counterpart. To przeniesie Cię do pliku implementacji (AppDelegate.m). Dodaj tutaj swoją metodę instancji applicationDidFinishLaunching:
. W przeciwieństwie do iPhone'a jest to metoda obsługi powiadomień, więc zajmuje instancję NSNotification, a nie instancję NSApplication.
Teraz, aby go podłączyć. W grupie Zasoby otwórz MainMenu.nib. Przeciągnij obiekt z okna biblioteki do okna najwyższego poziomu (takiego, w którym znajdują się ikony, na przykład Właściciel pliku i Pierwszy obiekt odpowiadający). Wybierz właśnie utworzony obiekt i otwórz inspektora tożsamości. Ustaw klasę obiektu na AppDelegate, dopasowując nazwę używaną w Xcode. Kliknij prawym przyciskiem właściciela pliku i przeciągnij z gniazda delegate
do nowego obiektu.
W Xcode dodaj instrukcję NSLog do swojej metody applicationDidFinishLaunching:
. Hit Save All, a następnie Build and Go. Wróć do Xcode i otwórz konsolę Debugger. Jeśli wszystko zrobiłeś dobrze i niczego nie zapomniałem, powinieneś zobaczyć tam wiadomość z logu.
Brakuje pośrednictwem kątownika wokół 'Super init' i nie wspomnieć, że metoda' applicationDidFinishLaunching: 'muszą być realizowane przez klasę ssame aby to działało. – MKroehnert