Macintosh lietojumprogrammu izstrādē tiek izmantoti atzvani, lai Mac OS X varētu izpildīt kodu jūsu lietotnē noteiktām darbībām. Ja veidojat standarta Macintosh logu vai dokumentu lietojumprogrammu, pats pirmais kods, ko OS X izpildīs, ir vienā no tālāk norādītajām atzvanīšanas metodēm, kas ir jāizveido savai lietotnei atkarībā no programmas dizaina.
-
Uz logiem balstītas lietojumprogrammas: (void)applicationDidFinishLaunching:(NSNotification*)aNotification
-
Uz dokumentiem balstītas lietotnes: (void)windowControllerDidLoadNib:(NSWindowController*)windowController
Atzvanīšana ir vienkārši metode, ko OS galu galā izpilda, mēģinot piegādāt vai izgūt informāciju no jūsu lietotnes. Jūsu lietojumprogrammas kods izpildīs metodi Cocoa klasei, kurā jūsu lietotnei būs iespēja norādīt vienas klases metodes nosaukumu, lai tā tiktu izsaukta šīs klases objektā, kas arī jūsu lietotnei būs jānorāda.
Delegāts ir palīgs objekts, kurā kakao klases izmanto, lai paplašinātu funkcionalitāti klasē, ļaujot jums ieviest kodeksu, kurā kakao klase izpildīt noteiktos apstākļos. Cocoa klase pārbauda savu delegāta objektu (ja tāds ir piešķirts), lai noskaidrotu, vai delegāts nodrošina noteiktas metodes ieviešanu. Ja delegātam ir šī metode, Cocoa klase izpilda šo metodi; ja delegāts neievieš šo konkrēto metodi, Cocoa klase vai nu izmanto savu noklusējuma metodi, vai reģistrē kļūdu. Lielākajai daļai delegātu ir jāiekļauj konkrēts protokols, kas nosaka, kādas metodes viņi drīkst ieviest; jūsu koda delegātiem ir jāizmanto ieviešanas metodes no konkrētā protokola, ko delegāts sagaida.
Šeit ir daži no Cocoa objektiem, kas var izmantot delegātus, lai izpildītu jūsu kodu:
-
NSTableView. NSTableView pieņem delegātu, kas pakļaujas NSTableViewDelegate protokolam. Tas ietver 20–30 metodes, kuras jūsu lietotnes deleģētais objekts var ieviest, lai atbalstītu jūsu lietotnes nepieciešamību zināt, ko dara NSTableView. Ir metodes, kas jūsu lietojumprogrammā tiks izsauktas, kad tai ir jāzina darbības un jāreaģē uz tām, piemēram, kad lietotājs tabulā veic atlasi vai maina kolonnas izmērus.
-
NSApplication. Varat piešķirt NSApplicationDelegate, lai tas apstrādātu dažas metodes, kuras saņems NSApplication instance (jūsu lietojumprogramma). Šīs metodes var izsaukt tieši pirms vai tūlīt pēc tam, kad jūsu lietojumprogramma izpilda citu metodi, lai varētu sagatavot jūsu lietotni.
-
NSWindow. Vienam no jūsu lietojumprogrammas logiem piešķirtais NSWindowDelegate dos jūsu lietotnei iespēju reaģēt uz lietotāja lieluma maiņu, pārvietošanu vai citiem loga notikumiem.
-
NSMenu. Jūs ieviešat NSMenuDelegate, lai atbalstītu notikumus, kas notiek, kad lietotājs mijiedarbojas ar jūsu lietojumprogrammas izvēlnēm.