Razvoj aplikacij za Macintosh uporablja povratne klice, da omogoči Mac OS X, da izvede kodo v vaši aplikaciji za določene operacije. Če ustvarjate standardno aplikacijo Macintosh, ki temelji na oknu ali dokumentu, je prva koda, ki jo bo izvedel OS X, v enem od naslednjih načinov povratnega klica, ki jih morate ustvariti za svojo aplikacijo, odvisno od zasnove aplikacije:
-
Aplikacije, ki temeljijo na oknu: (void)applicationDidFinishLaunching:(NSNotification*)aNotification
-
Aplikacije, ki temeljijo na dokumentih: (void)windowControllerDidLoadNib:(NSWindowController*)windowController
Povratni klic je preprosto metoda, ki jo OS na koncu izvede, medtem ko poskuša zagotoviti ali pridobiti informacije iz vaše aplikacije. Vaša programska koda bo izvedla metodo za razred Cocoa, kjer bo vaša aplikacija imela možnost zagotoviti ime metode enega od vaših razredov, ki bo poklicana na objektu tega razreda, ki ga bo morala zagotoviti tudi vaša aplikacija.
Delegat je pomočnik predmet, katerega kakav razred uporablja za razširitev funkcionalnosti razreda, ki vam omogoča, da izvajanje kode, ki bodo razred kakav izvede v določenih okoliščinah. Razred Cocoa preveri svoj objekt delegata (če je bil dodeljen), ali pooblaščenec zagotavlja izvedbo določene metode. Če ima delegat to metodo, razred Cocoa to metodo izvede; če delegat ne implementira te posebne metode, razred Cocoa bodisi uporabi lastno privzeto metodo ali zabeleži napako. Večina delegatov mora vključiti poseben protokol, ki določa, katere metode lahko izvajajo; delegati vaše kode morajo uporabljati metode implementacije iz posebnega protokola, ki ga pooblaščenec pričakuje.
Tukaj je nekaj objektov Cocoa, ki lahko uporabljajo delegate za izvajanje vaše kode:
-
NSTableView. NSTableView sprejme pooblaščenca, ki upošteva protokol NSTableViewDelegate. To vključuje 20 do 30 metod, ki jih lahko izvaja pooblaščeni objekt vaše aplikacije, da podpre potrebo vaše aplikacije, da ve, kaj počne NSTableView. Obstajajo metode, ki bodo poklicane v vaši aplikaciji, ko mora vedeti in se odzvati na dejanje, na primer, ko uporabnik naredi izbiro v tabeli ali ko se spremeni velikost stolpca.
-
NSA aplikacija. NSApplicationDelegate lahko dodelite za obdelavo nekaterih metod, ki jih bo prejel primerek NSApplication (vaša aplikacija). Te metode se lahko pokličejo tik pred ali takoj po tem, ko vaša aplikacija izvede drugo metodo, tako da se lahko vaša aplikacija pripravi.
-
NSWindow. NSWindowDelegate, dodeljen enemu od oken vaše aplikacije, bo vaši aplikaciji dal možnost, da se odzove na uporabnikovo spreminjanje velikosti, premikanje ali druge dogodke okna.
-
NSMenu. NSMenuDelegate implementirate za podporo dogodkov, ki se zgodijo, ko uporabnik komunicira z meniji v vaši aplikaciji.