Kuriant „Macintosh“ programas naudojami atgaliniai skambučiai , kad „Mac OS X“ galėtų vykdyti kodą jūsų programoje tam tikroms operacijoms atlikti. Jei kuriate standartinę „Macintosh“ langu arba dokumentu pagrįstą programą, pirmasis kodas, kurį OS X vykdys, yra vienas iš toliau nurodytų atgalinio iškvietimo metodų, kuriuos turite sukurti savo programai, atsižvelgiant į programos dizainą:
Atgalinis skambinimas yra tiesiog metodas, kurį OS galiausiai vykdo, kai bando pateikti arba nuskaityti informaciją iš jūsų programos. Jūsų programos kodas vykdys „Cocoa“ klasės metodą, kuriame jūsų programa turės galimybę pateikti vienos iš jūsų klasių metodo pavadinimą, kad būtų iškviesta tos klasės objektu, kurį taip pat turės pateikti jūsų programa.
Delegatas yra pagalbininkas objektas, kuriame kakavos klasė naudoja pratęsti klasės funkcionalumą leidžia jums įgyvendinti kodas, kuris kakavos klasė atliks tam tikromis aplinkybėmis. „Cocoa“ klasė tikrina savo deleguotojo objektą (jei jis buvo priskirtas), ar delegatas įgyvendina konkretų metodą. Jei delegatas turi tą metodą, Cocoa klasė vykdo tą metodą; jei įgaliotasis neįgyvendina to konkretaus metodo, Cocoa klasė naudoja numatytąjį savo metodą arba registruoja klaidą. Dauguma delegatų turi įtraukti tam tikrą protokolą, kuris nustato, kokius metodus jie gali įgyvendinti; jūsų kodo įgaliotiniai turi naudoti diegimo metodus iš konkretaus protokolo, kurio deleguotasis tikisi.
Štai keletas „Cocoa“ objektų, kurie gali naudoti delegatus jūsų kodui vykdyti:
-
NSTableView. NSTableView priima delegatą, kuris paklūsta NSTableViewDelegate protokolui. Tai apima 20–30 metodų, kuriuos programos įgaliotasis objektas gali įdiegti, kad palaikytų jūsų programos poreikį žinoti, ką veikia NSTableView. Yra metodai, kurie bus iškviesti jūsų programoje, kai jai reikia žinoti ir reaguoti į veiksmą, pvz., kai vartotojas pasirenka lentelėje arba kai keičiamas stulpelio dydis.
-
NSApplication. Galite priskirti NSApplicationDelegate tvarkyti kai kuriuos metodus, kuriuos gaus NSApplication egzempliorius (jūsų programa). Šie metodai gali būti iškviesti prieš pat arba iškart po to, kai programa vykdo kitą metodą, kad būtų galima paruošti programą.
-
NSWindow. Vienam iš jūsų programos langų priskirtas NSWindowDelegate suteiks jūsų programai galimybę reaguoti į vartotojo dydžio keitimą, perkėlimą ar kitus lango įvykius.
-
NSMeniu. Įdiekite NSMenuDelegate, kad palaikytų įvykius, kurie įvyksta, kai vartotojas sąveikauja su jūsų programos meniu.