CPFMACOSX: Začínáme

Mnoho knih začíná spoustou filozofie. V tomto okamžiku by to ale bylo plýtvání drahocenným papírem. Místo toho vám radši budu dělat průvodce při psaní vaší první aplikace v Cocoa. Až skončíme, budete zároveň vzrušeni i zmateni - a připraveni na nějakou tu filozofii.

Naším prvním projektem bude aplikace aplikace generující náhodná čísla která má dvě tlačítka: Seed random number generator using time a Generate random number. Vygenerované číslo bude zobrazeno v textovém poli. Tento jednoduchý příklad zahrnuje převzetí uživatelského vstupu a zobrazení výstupu. Občas se vám bude zdát to co děláte a proč, řekněme, terse. Nemějte ale obavy - vše prozkoumáme detailněji později. Prozatím stačí jen následovat insturkce.

img 2-1 + popisek

Uvnitř Xcode

Za předpokladu že jste si nainstalovali vývojářské nástroje, najdete Xcode v /Developer/Applications/. Přetáhněte si aplikaci do doku; budete ji používat často. Spusťte Xcode.

Jak bylo zmíněno dříve, Xcode bude sledovat všechny složky vaší aplikace. Všechny tyto složky budou uloženy v adresáři kterému se říká adresář projektu. Prvním krokem při vytváření aplikace je vytvoření nového adresáře projektu který obsahuje základní kostru aplikace.

Vytvoření nového projektu

V menu File vyberte položku New Project... . Obejví se panel (viz obrázek 2.2) ve kterém můžete vybrat typ aplikace kterou chcete vytvořit: Cocoa Application. Všimněte si že jsou k dispozici i jiné typ projektů.

img 2-2

V této knize se budeme zabývat následujícími hlavními typy projektů:

Jako jméno projektu zadejte RandomApp jak můžete vidět na obrázku 2.3. Jména aplikací se většinou píší s velkými písmeny. Také můžete vybrat adresář ve kterém bude váš projekt vytvořen. Obvykle je se váš projekt vytvoří ve vašem domovském adresáři. Klikněte na tlačítko Save.

img 2-3

Tím vytvoříte adresář projektu spolu s kostrou aplikace uvnitř. Tuto kostru rozšíříte jako zdroj kompletní aplikace a poté tento zdroj přeložíte na funkční aplikaci.

Když se podíváte na svůj projekt v Xcode, uvidíte na levé straně okno s jeho strukturou. Každí položka v této struktuře představuje jeden typ informace která může být programátorovi k užitku. Některí z položek jsou soubory; jiné jsou zprávy, třeba jako chyby překladu nebo výsledky vyhledávání. Teď se budeme zabývat editováním souborů, takže označte RandomApp a podívejte se na soubory které se budou překládat.

Kostru projektu která pro vás byla vytvořena lze přeložit a spustit. Obsahuje menu a okno. Klikněte na položku s kladivem v zeleném kruhu na panelu nástrojů, tím se projekt přeloží a spustí, jak můžete vidět na obrázku 2.4.

Při spuštění aplikace uvidíte poskakující ikonku apliace jak jste zvyklí. Jméno vaší aplikace se pak objeví v menu. To znamená, že vaše aplikace je teď aktivní. Může se stát že okno vaší aplikace bude schované za jiným oknem. Pokud tedy svoje okno nevidíte, vyberte položku Hide Others z menu aplikace RandomApp Měli byste vidět prázdné okno jako na obrázku 2.5.

Nic moc to neumí, ale všimněte si že je to plně funkční aplikace. Dokonce funguje i tisk. Ve zdrojovém kódu lze najít přesně jednu řádku. Podívejme se na ni blíže; zavřete RandomApp a vraťte se zpět k Xcode.

img 2-4 img 2-5

Funkce main

Klepnutím označte soubor main.m. Pokud na něj poklepete dvakrát, otevře se v novém okně. Protože ale denně pracuji s mnoha soubory, není to pro mě ideální způsob, takže používám pro zobrazování jen jedno okno. Klikněte na položku Editor na panelu nástrojů, čímž se okno rozdělí na dvě a zobrazí se okno editoru. Kód se zobrazí v tomto okně (obrázek 2.6).

img 2-6

Téměř nikdy nebudete muset upravovat soubor main.m v projektu aplikace. main() jednoduše volá NSApplicationMain(), která zase volá objekty uživatelského rozhraní v nib souboru. Nib soubory se vytváří v Interface Builderu (NIB je zkratka pro NeXT Interface Builder; NS je zkratka pro NeXTSTEP). Poté co vaše aplikace načte nib soubor, čeká na vstup od uživatele. Když uživatel kliká nebo píše, volá se váš kód automaticky. Pokud jste nikdy předtím nenapsali aplikaci s grafickým uživatelským rozhraním, může to být pro vás překvapující zjištění: uživatel přebírá kontrolu a váš kód jednoduše reaguje na to co uživatel dělá.

Uvnitř Interface Builderu

V okně se strukturou aplikace je ve složce Resources nib soubor s názvem MainMenu.nib. Poklepáním se otevře v Interface Builderu (obrázek 2.7). Otevře se spousta oken, takže je lepší skrýt ostatní aplikace přes položku Hide Others v Interface Builderu.

Interface Builder vám umožňuje vytvářet a upravovat objekty uživatelského rozhraní (jako jsou okna a tlačítka) a ukládat je souboru. Můžete v něm také vytvářet instance svých tříd a vytvářet spojení mezi těmito instancemi a standardními objekty uživatelského rozhraní. Spojení, která jste vyvtořili mezi objekty uživatelského rozhraní a vašimi třídami, začnou fungovat v momentě kdy uživatel pracuje s uživatelským rozhraním.

img 2-7

Okno Library

V okně Library jsou widgety uživatelského rozhraní, které můžete přetáhnout na okno vaší aplikace. Pokud například chcete použít tlačítko, můžete jej přetáhnout z okna Library.

Prázdné okno

Prázdné okno aplikace je instancí třídy NSWindow která je uložena uvnitř vašeho nib souboru.

Když uložíte soubor po vytvoření těchto objektů a úpravě jejich atributů, je to jako byste objekty hibernovali do souboru. Kdykoli aplikaci spustíte, načte se nib soubor a objekty jsou oživeny. Husťáci by řekli "Interface Builder archivuje objekty do nib souboru, a při spuštění apilkace jsou restorovány".

Rozvržení uživatelského rozhraní

I když vás budu provázet tvorbou vaší první aplikace, mějte na paměti že vaším cílem je vtvořit uživatelské rozhraní které vypadá jako obrázek 2.8.

img 2-8

Nyní přetáhněte tlačítko z okna Library na prázdné okno aplikace (jak je vidno na obrázku 2.9). Tlačítko naleznete snadněji pokud vyberete v horní části okna Library složku Cocoa -> Views & Cells.

img 2-9

Poklepejte na tlačítko a změňte jeho popisek na Seed random number generator using time.

Zkopírujte a vložte tlačítko. Změňte popisek nového tlačítka na Generate random number. Přetáhněte na okno aplikace popisek (label) z okna Library.

img 2.10

Rozšiřte popisek na šířku obou tlačítek tažením za levou a pravou stranu tohoto textového pole směrem ke stranám okna (můžete si všimnout toho že se objeví modré úsečky když se přiblížíte k hraně okna. Tyto pomocné úsečky vám pomohou navrhovat uživatelská rozhraní vyhovující pravidlům příručky Apple GUI).

Zmenšete okno aplikace.

Abyste mohli zarovnat obsah textového pole na střed, budete muset použít Inspector. Označte textové pole, a z menu Tools vyberte položku Attributes Inspector. Klepněte na tlačítko center-justify (obrázek 2.11).

Tip: Vždy si ráno otevřu okno Inspectoru a nechávám si ho otevřené každý den.

img 2-11

Okno Doc

některé objekty jsou ve vašem nib souboru viditelné (třeba tlačítka) a jiné nejsou (třeba vaše vlastní objekty ovládání)

Name of Tutorial, Name of Chapter | Dr3dweRkZ | Name of Tutorial, Name of Chapter