Obsah // Předmluva...1’* // O autorech...13 // O odborném korektorovi...14 // Poděkování...13 // Úvod...17 // KAPITOLA 1 // Kakao má každý rád...19 // Opatřete si počítač Macintosh a stáhněte si potřebné vývojové nástroje.20 // Kde najít pomoc...21 // Co musíte vědět předtím, než začnete...22 // Jste připravení?...•22 // KAPITOLA 2 // Ahoj světe...25 // Projekt Hello World...25 // Průzkum nib souboru...2 // Knihovna...30 // Přetažení popisku...32 // Používání modrých pomocných čar...33 // Okno inspektoru...34 // Inspektor atributů...35 // Změna barvy a písma textu popisku...37 // Editor nabídek...39 // Vytvoření ikony aplikace...41 // Přidání ikony do projektu...42 // Seznamy vlastností...44 // Spuštění aplikace...45 // Sdílení radosti z vašeho výtvoru s okolním světem.46 // Na shledanou Ahoj světe...48 // 4 // Obsah // ••••••••••••••••••••••••••••••••••••••a // •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••a // // KAPITOLA 3 // Světla, Kamera, Akce! (a také outlety)...49 // Aplikace, která je tématem této kapitoly...50 // Frameworky, frameworky, všude samé frameworky...51 // Framework Foundation... // Framework AppKit... // Model-vzhled-řízení...
Outlety, akce a řídicí objekty // Deklarace outletů... // Deklarace akcí... // Outlety a akce v akci... // Zapnutí automatické správy paměti. // Naprogramování řídicí třídy... // Deklarace outletu a akce... // A nyní zpět do nástroje Interface Builder. // Konfigurace okna aplikace... // Návrh uživatelského rozhraní okna... // Zapojení outletu... // Propojení tlačítka s akcí... // Implementace metody akce // Delegát aplikace... // Ukončení aplikace při zavření jejího okna // Prohlížeč dokumentace Shrnutí... // •••••••••¦•••••••••••••••••••••••••«•a** // •••••••••••••••••••••••••••••••c* // •••••••••••••••••••••••«••••••••••••••••••••••••••••••••••••••*• // •••••••••••••••••••••••••••••••••••••••••••••••••••••••«a•«•••••••• // ’••••••••••••• // ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••«»e
// Propojování... // ...79 // ...80 // ...82 // ...84 // // ••••••••••••••••••••«•••••••••••••••••••••••••••••••••••••••••••••••••••••••••• // 85 // 87 // 88 // 89 // 90 // 92 // 93 // ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••«••••••••••••••••••••••••a // ...95 // ...95 // ...95 // ...98 // ...100 // .101 // Obsah // 5 // Základy psaní zdrojového kódu aplikace... // Standardizace názvů klíčů... // Vytvoření výchozího padoucha... // Cit pro detaily... // Nastavení jednoduchých hodnot... // Hodnoty komplexních ovládacích prvků... // Reakce na zadávání vstupu... // Závěr... // KAPITOLA 5 // Tabulky... // Příprava třídy VillainTrackerAppDelegate na více padouchů // Uvolnění místa pro rámec tabulky... // Vyladění automatické změny rozměrů... // Nová propojení... // Zdrojový kód obsluhující rámec tabulky... // Rámec tabulky potřebuje vaši pomoc... // Přidávání a mazání padouchů... // Závěr... // 102 // .103 // .103 // .104 // .105 // .106 // .110 // 113 // 115 // ...116 ...117 ... 120 ... 123 ...123
... 124 ...127 ... 129 // KAPITOLA 6 // Technologie Cocoa Bindings // 131 // ••••••••••••••• // ••••••••••••••a // ..143 // 143 // Vazba jednoduchých ovládacích prvků...132 // Vytvoření projektu DungeonThing... 132 // Vytvoření okna předvoleb... 3 // Vazba s třídou NSUserDefaultsController...138 // Vytvoření hlavního okna aplikace...141 // Konfigurace třídy DungeonThingAppDelegate... // Definice konstant... // Specifikace výchozích hodnot předvoleb...I44 // Implementace metod akcí...I45 // Vazba rámce tabulky... // Příprava zdrojového kódu na použití vazeb...149 // Zobrazování historie v tabulkách...152 // Vytvoření a konfigurace řídicího objektu pole...155 // Vazba tabulky prostřednictvím řídicího objektu pole...157 // Vazbatextového pole prostřednictvím výběru provedeného řídicím objektem..157 // Kontrola funkčnosti...157 // Napěnit, opláchnout a znovu...158 // Dobře, ale jak to vlastně funguje?...158 // Pojmenované atributy objektů...158 // Sledování změn objektů...I60 // Jak technologie Cocoa Bindings funguje...160 // Závěr...161 // 6 // Obsah // KAPITOLA 7 // Úvod do technologie Core Data // Nedostatky předchozích aplikací... // Aplikace MythBase... // Definování modelu... // Automaticky vygenerované grafické uživatelské rozhraní. // Doladění uživatelského rozhraní. // Průzkum zdrojového kódu šablony... // Rozhraní delegátu aplikace...
// Implementace delegátu aplikace... // Přidání aplikační logiky... // Validace jednotlivých atributů... // Validace více atributů najednou... // Vytvoření vlastního atributu... // Závěr. // KAPITOLA 8 // Koncepce vztahů v technologii Core Data // Modelování nových entit a vztahů... // Verzování modelu a migrace... // Příprava na různé verze datového modelu... // Přidání nových entit... // Přidání vztahů... // Vytvoření jednoduché migrace... // Otestování aplikace... // Aktualizace grafického uživatelského rozhraní... // Vytvoření okna pro data entit MythicalBand... // Přidělení užitečných názvů řídicím objektům polí. // Přidávání postav do kapel... // Zobrazování členů skupin... // Vytvoření okna pro data entit MythicalVenue... // Přidání seznamu koncertních síní do okna skupin.. // Shrnutí... // KAPITOLA 9 // Vyhledávání a vracení dat uchovávaných prostřednictvím technologie Core Data na základě kritérií... // ••••••••••••«•••••••••••••••••••••••••••••••••••••••••••••••a // Aplikace QuoteMonger // Vytvoření projektu a jeho datového modelu // Okno pro zadávání dat... // Okno pro vyhledávání citací... // •••••••••••••¦•»••••••••••v // // 163 // ..164 // ..165 // ...166 // ...173 // ...175 // ..182 // ...182 // ...183
// ...191 // ...192 // ...193 // ...195 // ...197 // 199 // ... 200 // ..201 // ..201 // ..202 // ..202 // ..205 // ..206 // ...208 // ..208 // ..209 // ..210 // ..212 // ..214 // ..215 // ..217 // 219 // ...220 // ..221 // ..221 // ..224 // Obsah // 7 // Omezování výsledků vyhledávání // prostřednictvím třídy NSPredicate (predikátů)... // Vytváření predikátů... // Specifikace predikátu pro třídu NSArrayController v nástroji Interface Builder... // Predikáty definované uživatelem... // Přidání predikátu do delegátu aplikace... // Přidání editoru predikátů do vyhledávacího okna Konfigurace editoru predikátů... // Uložení predikátu Závěr... // ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• // .226 // ...226 // ...228 // .228 // ...229 // ...230 // ...230 // .233 // .234 // KAPITOLA 10 _ // Okna, nabídky a lístky...235 // Třídy NSWindow a NSPanel...236 // Standardní systémové panely...240 // Řídicí objekt s vlastním nib souborem...245 // Modálni okna...248 // Systémové nabídky...251 // Standardní položky nabídek aplikace...252 // Vaše vlastní nabídky...252 // Lístky...259 // Shrnutí...261 // KAPITOLA 11 // Aplikace pro zpracování dokumentů...263
Vytvoření aplikace ColorMix...265 // Průzkum výchozích nib souborů...265 // Definování modelu...266 // Nastavení dvou barev...266 // Nejjednodušší grafické uživatelské rozhraní na světě...267 // Vytvoření výchozí sady barev...268 // Výběr formátu souborů...270 // Přidání barvy...270 // Třída ColorBlendView...271 // Přidání smíšených barev do grafického uživatelského rozhraní...273 // Přidání pozlátka na pozadí...278 // Několik slov o Undo a Redo operacích...279 // Undo zásobník...280 // Závěr...281 // 8 // Obsah // KAPITOLA 12 // Výjimky, signály, chyby a ladění // Ošetřování výjimek... // Zpracování výjimek... // Omezená role výjimek v prostředí Cocoa. // Testovací aplikace... // Výjimka NSInvalidArgumentException... // Výjimka NSRangeException... // Další druhy výjimek... // Horší než výjimky: smrt způsobená signálem // Třída NSError... // Domény a kódy chyb... // Detekce výskytu chyby... // Prezentace chyby... // Závěr.. // ¦••••••••••••••••••••••••••••••••••, // ••••••••••••••••••a // KAPITOLA 13 // Kreslení v Cocoa // Základy. // •••••••••••••••••••••e« // Systém souřadnic rámce vzhledu... // Obdélníky frame a bounds... // Obdélníky, body a rozměry... // Základy koncepce křivek... // Vytvoření podtřídy třídy NSView... // Struktury
jazyka C... // Základní kreslicí metoda: drawRect:. // Grafické stavy... // Pomocné objekty pro vytváření křivek // Barvy a grafický kontext... // A kromě barvy... // Manuální konstrukce křivky... // Posunutí hranic... // Aplikace LOLmaker // První kroky ? Lolu.. Třída LOLView... // Základy obsluhy tisku // Shrnutí... // • •••’•••??? // aaaaaaaaaaaa*aaaa*a // KAPITOLA 14 // Pokročilé kreslení // Úprava křivky // •••••••••••••••••a // aaaaaaaaaaaaaaaaaaaaaaaaaaaaa // Přípravy... // Infrastruktura aplikace // 283 // ...284 // ..284 // ..285 // ..286 // ..292 // ..294 // ..296 // ...297 // ...299 // ..300 // ..301 // ..305 // .. 306 // 307 // ...308 // ...308 // ...309 // ...309 // ...310 // ...310 // ..311 // ...311 // ...311 // ...312 // ..313 // ..313 // ..314 // ..315 // ...317 // ..318 // ..320 // ...326 // ...327 // 329 // ...329 // ..330 // ..332 // Obsah // 9 // Vykreslení křivky... // Sledování myši... // Několik vylepšení... // Úvod do technologie Core Animation... // Základy animací... // Implicitní animace... // Explicitní animace... // Seskupování animací... // Shrnutí... // KAPITOLA 15 // Práce se soubory... // Implicitní prístup ? souborům... // Vysokoúrovňové operace se soubory... // Zdrojový kód aplikace What About That File... // Uživatelské rozhraní aplikace What About That File. // Shrnutí... // KAPITOLA 16 // Souběžnost... // Aplikace SlowWorker... // Základy
provádění zdrojového kódu v různých vláknech // Jednotky práce... // Operační fronty... // Oživení aplikace SlowWorker... // Rozšíření třídy NSObject... // Vyžádání hlavního vlákna... // GCD: Řazení do nízkoúrovňových front... // Bloky... // Druhý způsob oživení aplikace SlowWorker... // Další možnost: třída NSBIockOperation... // Závěr... // KAPITOLA 17 // Pohled do budoucnosti // Další techniky charakteristické pro Cocoa // Notifikace... // Bloky... // Prostředí Cocoa a jiné jazyky // PyObjC... // MacRuby... // Nu... // •••••••• // JavaScript // ..333 // ..335 // ..337 // ..338 // ..339 // ..339 // ...340 // ..345 // ..353 // 355 // ...355 // ...357 // ..358 // ..363 // ...367 // 369 // ...370 // ...372 // ..373 // ..374 // ...374 // ..377 // ..378 // ...383 // ..384 // ..385 // ..388 // ...389 // 391 // ...392 // ..392 // ..394 // ...396 // ..397 // ..397 // ..398 // ..399 // 10 // Obsah // F-Script... // Portované prostredí Cocoa // Cocoa Touch... // GNUstep a Cocotron... // Cappuccino/Objective-J. // Konec naší společné cesty // ..400 // 401 // ..401 // ..402 // ..403 // 403 // Rejstřík // 404