Editor XIBů - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Odkud pochází fotografka Anne Erhard?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



Informace

Editor XIBů

31. srpna 2011, 00.00 | V poslední době se v našem seriálu zabýváme NIBy a XIBy – jak už víme, jde jen o dvě různá jména téže věci. Vysvětlili jsme si velmi podrobně, oč vlastně jde; nyní se začneme zabývat podporou v Xcode pro práci s těmito soubory.

Co to jsou objektové sítě XIB – po sestavení aplikace převedené do binární podoby NIB s týmž obsahem – již víme. Víme také, že jakkoli se v principu mohou používat pro ukládání zcela libovolných objektů, v praxi jich běžně využíváme pro objektové sítě, reprezentující grafické uživatelské rozhraní aplikace.

Ve dvou minulých dílech, v nichž jsme si podrobně vysvětlili obsah a funkci NIBů, jsme se opakovaně zmínili o tom, že je možné (a velmi praktické) mít k dispozici obecný editor, v němž takovéto objektové sítě lze vytvářet a upravovat. Takový editor je od verse 4 nahoru součástí integrovaného vývojového prostředí Xcode, a dnes se na něj podíváme podrobněji.

Vytvoření a otevření XIBu

Objektovou síť XIB vytváříme přesně stejně, jako jakýkoli jiný soubor, který je součástí projektu: základní kostru, obsahující nejběžnější věci, nám automaticky vytvoří Xcode při zakládání nového projektu na základě odpovídajícího projektového vzoru; kromě toho můžeme kdykoli vytvořit XIB nový pomocí standardní služby "New File..." v navigátoru v levé části okna a pak výběrem ze skupiny "User Interface" nebo přetažením z paletky v dolní části pravého sloupce:

Klepnutím na soubor XIB v navigátoru pak jej otevřeme v editoru v prostřední části okna – nebo poklepáním v okně novém – přesně stejně, jako jakýkoli jiný soubor. Xcode formát XIB samozřejmě rozezná, a aktivuje speciální editor.

Editor XIBů

Tento editor je poměrně složitý; musí totiž obsahovat řadu samostatných prvků:

• přehlednou tabulku, ukazující kompletní obsah XIBu a nabízející pohodlný přístup ke kterémukoli objektu, který je v XIBu uložen;

• grafickou podobu těchto objektů, odpovídající jejich normálnímu vzhledu na obrazovce počítače;

• inspektory atributů, zobrazující nastavení konkrétních atributů těchto objektů a umožňující je měnit;

• paletu objektů, z nichž lze vybírat při přidávání nových prvků do XIBu;

• řadu specifických příkazů, jež úzce souvisí právě jen s prací s objekty v XIBu (namátkou třeba možnost grafického srovnání objektů do sloupce nebo do řady).

Komukoli, kdo má alespoň zlomek zdravého rozumu, je naprosto zřejmé, že tyto požadavky lze rozumně splnit pouze v samostatné aplikaci, jež bude podporovat několik samostatných oken a palet a jež bude mít kompletní vlastní menu; tato aplikace by mohla s Xcode samozřejmě úzce spolupracovat. Přesně tak tomu také bylo od poloviny 80. let, kdy NIBy ve firmě NeXT vymysleli, až donedávna.

Bohužel, nedávno se někdo ve firmě Apple rozhodl, že vše je třeba integrovat do Xcode, a navíc, že jediný smysluplný způsob práce s počítačem je práce v celoobrazovkovém režimu – tak, jak tomu bývalo standardem v MS DOSu v dobách dřevních. Stokráte bohužel to byl někdo, komu programátoři museli naslouchat, takže editor XIBů je nacpaný naprosto absurdním a pro práci extrémně nepohodlným způsobem do okna Xcode. Lze jej sice – díkybohu aspoň za to – otevřít v samostatném okně, nicméně nelze otevřít samostatně jednotlivé prvky GUI (ty jsou uloženy v podřízených oknech zhruba na témže principu, jemuž jsme se vždy právem vysmívali jako dokonalé absurditě ve Windows 3), a nelze samostatně otevřít jednotlivé paletky a inspektory. Úpravy XIBů jsou proto v současnosti krajně nešikovné :(

Editor sám – bez paletek a inspektorů, k nimž se vrátíme za chvilku – vypadá zhruba takto:

Vidíme, že editační okno je rozděleno na dvě části: v levé je přehled objektů, jež jsou v XIBu uloženy; v horním ze dvou bloků jsou zástupné objekty "File's Owner" a "First Responder" – prvému z nich již dokonale rozumíme; druhý prozatím ponecháme stranou, ostatně v iOSu, na nějž se převážně soustředíme, je jeho úloha poměrně okrajová.

V dolním bloku pak vidíme všechny kořenové objekty, uložené v XIBu: na našem obrázku jsou tři – obecný objekt "RangeLogAD", okno jménem "Window", a instanci nám již důvěrně známé třídy UITabBarController, jež v okně bude reprezentovat kořenový řídicí objekt rámců s jednotlivými "taby" v dolní liště. Objekty, jež obsahují další vnořené prvky – zde jen "tab bar controller" – lze pomocí standardního trojúhelníčku "otevřít", takže uvidíme jejich obsah a budeme s ním moci pracovat:

Bohužel velmi šikovné možnosti zobrazení prvků v "browseru" (tedy v několika sloupcích) a v tabulce, jež bývaly v samostatném Interface Builderu samozřejmostí, již Xcode nenabízí.

V pravé části pak jsou samy grafické prvky – v našem případě tedy okno "Window"; to, že je v levé části editoru zvoleno, indikuje modré orámování.

Důvod, proč ilustrujeme text jiným projektem, je velmi jednoduchý a nedůležitý: náš testovací projekt, na němž pracujeme již delší dobu, je určen pro iPad, a jeho okna a rámce jsou proto velké a do absurdního "jednookenného" integrovaného prostředí Xcode se dobře nevcházejí; projekt Range Log, z nějž jsme snímky převzali, je ale pro iPhone a jeho malá okna se vejdou poměrně slušně.

Inspektory a palety

Panely inspektorů a palet se po otevření XIBu náhle objeví jako další ikonky v pravém sloupci integrovaného prostředí – ten při práci s XIBem takřka vždy musíme otevřít, jinak nelze dělat téměř nic.

Čtveřice inspektorů se objeví v horní části pravého sloupce:

Jejich ikonky, podle mého názoru krajně neintuitivní, postupně zleva – po přeskočení prvých dvou standardních ikonek pro atributy souboru a rychlou nápovědu (to jsou ty dvě vlnky) postupně reprezentují

• podivné "okénko formuláře" (nebo co to má být) reprezentuje inspektor identity, jehož hlavní službou je určit specifickou podtřídu (tuto službu a její smysl jsme si podrobně vysvětlili na konci minulého dílu);

• ikonka podobná kratičkému vodorovnému posuvníku odkazuje na inspektor atributů (na minulém obrázku jej vidíme vybraný). My se inspektory budeme podrobně zabývat příště, ale je předem zřejmé, že půjde o inspektor asi vůbec nejpoužívanější, jehož prostřednictvím můžeme upravovat atributy zvoleného objektu – jako příklad si zde můžeme ukázat třeba řádek "Background" zhruba uprostřed, v němž můžeme libovolně vybrat barvu pro pozadí okna;

• třetí ikona, jež připomíná šikmo položenou cihlu, má patrně vypadat jako měřítko, neboť reprezentuje inspektor velikosti – v něm můžeme určit jak samotnou velikost zvoleného objektu, tak i mechanismus automatických změn této velikosti při změně velikosti okna, jež jej obsahuje;

• konečně pak na obrázku poslední šipka, jako jediná z ikonek jakžtakt intuitivní, reprezentuje inspektor vazeb, v němž vidíme (a můžeme měnit) vazby mezi zvoleným objektem a všemi ostatními (včetně zástupných).

Pokud bychom pracovali na XIBu určeném pro aplikaci Mac OS X, přibudou další dvě ikonky s odpovídajícími inspektory:

inspektor objektových vazeb pod ikonkou, jež vypadá trochu jako symbol vlněného prádla;

• a pod ikonkou připomínající vzdáleně připomínající stoh papírů inspektor animačních efektů.

Paletky jsou pro práci v XIBech relevantní dvě: naprosto zásadní důležitost samozřejmě má paleta objektů, jež běžně vkládáme do XIBů; o něco méně důležitá (a velmi nepohodlně implementovaná) pak je paleta obsahující multimediální soubory – především obrázky –, jež jsou součástí projektu.

Ty jsou obě umístěny do dolní části pravého sloupce – prvá z nich (již vidíme na obrázku otevřenou) pod ikonou krychličky, již Apple používá jako symbol objektu; druhá má ikonku, jež vypadá jako políčko na filmu (což je věc nám starším důvěrně známá, ale pochybuji, že by mnoho současných začínajících programátorů skutečný film vůbec kdy v době digitálních fotoaparátů i kamer vidělo :))

Pokud máte dojem, že to znamená, že buď musíte mít nešikovně malý inspektor nebo paletu, máte dojem naprosto správný: ti, kdo v Apple navrhovali grafické uživatelské rozhraní Xcode 4, se museli zbláznit – nebo v životě neprogramovali. Nebo možná obojí :(

V příštích dílech si vysvětlíme detaily použití jednotlivých inspektorů a palet a také si ukážeme několik triků, jež alespoň do jisté míry umožní obejít ty nejhorší z problémů, zaviněných "celoobrazovkovým" designem Xcode. Dnes si jen ukážeme "přehledné" pracovní okno při editaci jednoduchého XIBu:

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Tipy a Triky  

 » Rubriky  » Začínáme s  

 » Rubriky  » Software  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: