Razvoj Macintosh aplikacija koristi povratne pozive kako bi omogućio Mac OS X izvršavanje koda unutar vaše aplikacije za određene operacije. Ako stvarate standardnu aplikaciju temeljenu na prozoru ili dokumentu za Macintosh, prvi kod koji će OS X izvršiti je u jednoj od sljedećih metoda povratnog poziva koje morate izraditi za svoju aplikaciju, ovisno o dizajnu aplikacije:
-
Aplikacije koje se temelje na prozoru: (void)applicationDidFinishLaunching:(NSNotification*)aNotification
-
Aplikacije temeljene na dokumentu: (void)windowControllerDidLoadNib:(NSWindowController*)windowController
Povratni poziv jednostavno je metoda koju OS na kraju izvršava dok pokušava dostaviti ili dohvatiti informacije iz vaše aplikacije. Vaš će kod aplikacije izvršiti metodu za klasu Cocoa gdje će vaša aplikacija imati priliku dati naziv metode jedne od vaših klasa, koja će biti pozvana na objektu te klase koju će vaša aplikacija također morati pružiti.
Delegat je pomoćni objekt, kojem je kakao klasa koristi proširiti funkcionalnost klase omogućujući vam da provesti kod kojih je kakao klasa će izvršiti u određenim okolnostima. Klasa Cocoa provjerava svoj objekt delegata (ako je dodijeljen) daje li delegat implementaciju određene metode. Ako delegat ima tu metodu, klasa Cocoa izvršava tu metodu; ako delegat ne implementira tu specifičnu metodu, klasa Cocoa ili koristi vlastitu zadanu metodu ili bilježi pogrešku. Većina delegata mora uključiti određeni protokol koji određuje koje metode mogu implementirati; delegati vašeg koda moraju koristiti metode implementacije iz specifičnog protokola koji delegat očekuje.
Evo nekih objekata Cocoa koji mogu koristiti delegate za izvršavanje vašeg koda:
-
NSTableView. NSTableView prihvaća delegata koji poštuje NSTableViewDelegate protokol. To uključuje 20 do 30 metoda koje delegatski objekt vaše aplikacije može implementirati kako bi podržao potrebu vaše aplikacije da zna što radi NSTableView. Postoje metode koje će se pozvati u vašoj aplikaciji kada treba znati i reagirati na radnju, kao što je kada korisnik napravi odabir u tablici ili kada se promijeni veličina stupca.
-
NSA aplikacija. Možete dodijeliti NSApplicationDelegate za rukovanje nekim metodama koje će NSApplication instanca (vaša aplikacija) primiti. Te se metode mogu pozvati neposredno prije ili neposredno nakon što vaša aplikacija izvrši drugu metodu, tako da se vaša aplikacija može pripremiti.
-
NSWindow. NSWindowDelegate dodijeljen jednom od prozora vaše aplikacije dat će vašoj aplikaciji priliku da odgovori na korisnikovu promjenu veličine, premještanje ili druge događaje prozora.
-
NSMenu. NsMenuDelegate implementirate za podršku događajima koji se događaju kada korisnik stupi u interakciju s izbornicima u vašoj aplikaciji.