Macintoshi rakenduste arendus kasutab tagasihelistusi, et võimaldada Mac OS X-il käivitada teie rakenduses teatud toimingute jaoks koodi. Kui loote standardse Macintoshi akna- või dokumendipõhise rakenduse, siis esimene kood, mille OS X käivitab, on üks järgmistest tagasihelistamismeetoditest, mille peate oma rakenduse jaoks olenevalt rakenduse kujundusest looma.
Tagasihelistamine on lihtsalt meetod, mille OS lõpuks käivitab, kui ta proovib teie rakendusest teavet edastada või sealt hankida. Teie rakenduse kood käivitab meetodi Cocoa klassi jaoks, kus teie rakendusel on võimalus esitada ühe teie klassi meetodi nimi, et seda saaks kutsuda selle klassi objektil, mille teie rakendus peab samuti esitama.
Delegaat on opastusobjektia, mille Cocoa klassi kasutab laiendada funktsionaalsust klassi, võimaldades teil rakendada kood, mida Cocoa klassi täidab teatud tingimustel. Cocoa klass kontrollib oma delegaadiobjekti (kui see on määratud), kas delegaat pakub konkreetse meetodi rakendamist. Kui delegaadil on see meetod, käivitab Cocoa klass selle meetodi; kui delegaat seda konkreetset meetodit ei rakenda, kasutab Cocoa klass kas oma vaikemeetodit või logib vea. Enamik delegaate peab lisama konkreetse protokolli, mis määrab, milliseid meetodeid nad võivad rakendada; teie koodi delegaadid peavad kasutama konkreetse protokolli rakendusmeetodeid, mida delegaat eeldab.
Siin on mõned Cocoa objektid, mis võivad teie koodi käivitamiseks kasutada delegaate:
-
NSTableView. NSTableView võtab vastu delegaadi, kes järgib NSTableViewDelegate protokolli. See hõlmab 20–30 meetodit, mida teie rakenduse delegeeritud objekt saab rakendada, et toetada teie rakenduse vajadust teada, mida NSTableView teeb. On meetodeid, mida teie rakenduses kutsutakse välja siis, kui see peab toimingut teadma ja neile reageerima, näiteks kui kasutaja teeb tabelis valiku või kui veeru suurust muudetakse.
-
NSApplication. Saate määrata NSApplicationDelegate'i, et hallata mõnda meetodit, mille NSApplication eksemplar (teie rakendus) saab. Neid meetodeid võidakse kutsuda vahetult enne või vahetult pärast seda, kui teie rakendus käivitab mõne muu meetodi, et teie rakendust saaks ette valmistada.
-
NSWindow. Ühele teie rakenduse aknale määratud NSWindowDelegate annab teie rakendusele võimaluse reageerida kasutaja suuruse muutmisele, teisaldamisele või muudele aknasündmustele.
-
NSMenu. Rakendate NSMenuDelegate'i, et toetada sündmusi, mis juhtuvad, kui kasutaja suhtleb teie rakenduse menüüdega.