xibless je knihovna, Python, který generuje Objective-C kód, který staví Cocoa UIS. & Nbsp; Cílem této knihovny je nahradit XIBs v XCode, a pokud budete chtít, zbavit XCode úplně.
S xibless, namísto vytváření uživatelských rozhraní s WYSIWYG editorem, můžete stavět je do Python skriptu, podobně jako na to, co děláte, když budete stavět Qt uživatelská rozhraní bez Designer. Například, skript takto:
result = Window (200, 200, 330, 110, "Řekni mi své jméno!")
nameLabel = Label (výsledek, text = "Jméno:")
nameField = TextField (výsledek, text = "")
helloLabel = Label (výsledek, text = "")
Tlačítko = Button (výsledek, title = "Say Hello")
nameLabel.width = 45
nameLabel.packToCorner (Pack.UpperLeft)
nameField.packRelativeTo (nameLabel, Pack.Right, Pack.Middle)
nameField.fill (Pack.Right)
helloLabel.packRelativeTo (nameLabel, Pack.Below, Pack.Left)
helloLabel.fill (Pack.Right)
button.packRelativeTo (helloLabel, Pack.Below, Pack.Right)
nameField.setAnchor (Pack.UpperLeft, growX = True)
helloLabel.setAnchor (Pack.UpperLeft, growX = True)
button.setAnchor (Pack.UpperRight)
by přineslo Objective-C kód, který vybudovat formulář s názvem pole, textový popisek a tlačítko. Druhá část skriptu umístí widgety na formuláři odpovídajícím způsobem.
Přestože xibless je napsán v Pythonu, Objective-C kód generuje nemá Python závislost, takže tento nástroj je vhodný pro všechny Cocoa vývojáře.
xibless běží na Python 2.7 a vyšší. To znamená, že pokud jste na OS X 10.7 nebo novější, můžete použít vestavěný v Pythonu. V opačném případě budete muset nainstalovat novější verzi Pythonu.
Proč xibless?
Pro mnoho lidí XCode a integrovaným Interface Builder fungovat a abychom byli spravedliví, XCode je pěkný nástroj. Nicméně, to má nedostatky, většinou jen nepříjemností, ale přesto po chvíli, obtíže se stal ... nepříjemné. Například, když XIB UI dosáhne určité úrovně složitosti, nikdy nevíte, kdy dělá drobné aktualizace, pokud se omylem pokazil něco jiného. Protože každá změna, ale je to menší, změní velkou část souboru XIb, nemůžete v diferenciálu říci, zda úprava jste provedli byla výhradně ten, který chtěl udělat. K dispozici je také XIB lokalizace, s jeho one-XIb-copy-per-lokalizace, což je méně než optimální, ale těžko obejít. Každopádně, nebudu se snažit vás přesvědčit. Pokud nemáte již chtějí zbavit XCode a / nebo XIBs, pravděpodobně nebudete potřebovat xibless.
Instalace
Můžete nainstalovat xibless přes PIP:
Pip nainstalovat xibless
nebo stahování zdrojového balíčku a spuštění:
python setup.py nainstalovat
Chcete-li vytvořit dema ve složce dema, cd do něj a typ:
./waf configure
./waf
Výsledná aplikace bude ve složce sestavení.
Použít
xibless mohou být použity buď z příkazového řádku nebo pomocí Pythonu. Chcete-li ji použít z příkazové řádky, zadejte:
xibless
zdroj je cesta Python modulu napsal, že popisuje rozhraní, které chcete vytvořit. dest je cesta, kterou chcete, aby váš výsledný Objective-C soubor být zapsán na adrese. Chcete-li použít xibless přímo z Pythonu, použití je podobné:
import xibless
xibless.generate (zdroj, dest)
Nyní, to vše však je, že se generuje kód UI. xibless nemá, přesto, jakékoli integrované řešení, které vám umožní snadno vytvořit program Xcode-méně. Avšak to, co můžete udělat, je podívat se na ukázky složku a zakládají si na těch demonstracích (které jsou zcela XCode-méně), vytvořit svůj vlastní projekt.
Early Development
xibless je ve velmi raném vývoji a není to žádná dokumentace API dosud. Nyní budete muset zjistit, že API z dema a kopání přímo ve zdroji. Všimněte si také, že toto API by divoce měnit před v1.0.
Také počet nedodělků v tuto chvíli jsou nevyčíslitelné. Nejsou žádná chybová zpráva neplatné UI skripty, takže by to mohlo být velmi těžké, pro tuto chvíli, přijít na to, proč se vaše skripty nefungují.
Ach, ano, a paměťové úniky, je tu tuny z nich
Co je nového v této verzi:.
- Added VHLayout.
- Added Box.
- Vzhledem dodal delegát, fixedHeight, fixedWidth a accessibilityDescription atributy, stejně jako moveTo () (silnější verze packToCorner ()) a fillAll () metod.
- v poli, dodal obraz a accessibilityDescription atributy.
- Added SplitView.dividerStyle a přidal dokumentaci pro přímé rozdělené zobrazení hierarchie.
- Added TableView.borderType a View.focusRingType.
- Přidáno Button.bordered
- Přidáno MenuItem.state
- Added TabView.tabViewType.
- Added TextField.usesSingleLineMode.
- Přidáno marže a sladit argumenty rozvržení.
- Deprecated View.packToCorner ().
- Layout nyní obsahovat sublayouts.
- Nechte barevná () k získání hodnot v rozmezí od 0 do 255 navíc na 0,0-1,0.
- Nenechte lokalizovat řetězce obsahující pouze & quot; - & quot; (Oni používají k označení položky menu separátor).
- výška RadioButtons "nyní závisí na počtu řádků to má.
- Pevná výplň velikosti v rozvržení v případech, kdy existují jiné pohledy vedle výplně.
- Povolit UI skripty dovézt jednotky, které jsou ze stejné složce.
- Nahrazeno Button.keyEquivalent s Button.shortcut.
- Pevná runtemplate tak, aby jednotka XiblessSupport je sestaven v RunUI spustitelného programu.
- Opravena chyba, kdy bychom se někdy skončit s dvěma generovaným položku se stejnou varname.
- Vždy nastavte growX / growY FALSE v setAnchor () pro zobrazení, které mají pevnou šířka / výška.
- & quot; Text & quot; Argument textField konstruktoru je nyní povinné.
- Podpora strany a střed v View.setAnchor ().
- Vygenerované jednotky mají nyní poznámku s uvedením doby generaci a xibless verzi.
- Přesunuto TextField.alignment až kontrolu
- Kopie pouze XiblessSupport jednotku, když se to změnilo, čímž by se zabránilo zbytečné kompilaci.
- Pevná TabView v rozvržení delty pro případy, kdy neexistuje kartách.
- Podpora zkratky zahrnující znak "+".
- Lepší výchozí okraje v rozvržení, výška kontrolu a všechny další malé vylepšení tohoto druhu.
Co je nového ve verzi 0.4.1:.
- Přidáno NLSTR na UI skripty jmenný prostor
- nebalte Window.autosaveName lokalizace volání.
- Opravena chyba způsobující některé řetězce nesmí být zabalené v lokalizace volání.
- Set RadioButton je & quot; autosizesCells & quot; True po vytvoření.
Co je nového ve verzi 0.4.0:
- Přidáno Panel, SplitView, OutlineView, ListView, Toolbar , SegmentedControl, SearchField, Slider a NumberFormatter.
- přidané rozvržení.
- Byla přidána podpora pro mnoho, mnoho, mnoho nových atributů, konstant a typů.
- Nyní generuje & quot; .h & quot; jít vedle generované přístroji.
- Added nemovitosti a její podtřídy, jednodušší způsob, jak přidat podporu pro nové atributy, a to i složitých ty.
- Nyní je možné přepsat marže u metody rozložení volání.
- Byla přidána podpora pro vázání s View.bind () Metoda nový.
- přidáno nové výchozí hodnoty globální proměnné, které mohou být použity pro vazbu do uživatelských nastavení.
- Konstanty procházeli s const může být nyní bitové operace OR-ed.
- Vygenerovaný kód je nyní formátován vypadat lépe a trochu jednodušší ladění.
- Přidány nové konstanty pro nabídky zkratky pro speciální klávesy (šipky, zadejte atd.).
- Byla přidána podpora pro UI skriptu argumenty.
Co je nového ve verzi 0.3.1:
- tlačil dolů atribut akce od tlačítka mohli ovládat.
- RadioButtons je nyní podtřídy Control.
- Made okno přepočítat svůj názor smyčky po generoval děti.
Co je nového ve verzi 0.3.0:
- Přidáno RadioButtons, TableView, TabView, TextView, ImageView a ProgressIndicator.
- Přidána podpora pro smyčcový lokalizaci.
- Added TextField.alignment a TextField.textColor.
- Added Button.keyEquivalent.
- Přidáno CanClose, canResize a canMinimize na okně.
- Přidáno Control podtřídy.
- View lze nyní přímo instance v UI skriptů (Jsou jako & quot; Vlastní zobrazení & quot; v IB).
- xibless run lze nyní spustit na scénáři, pro které je výsledkem je zobrazení.
- Vylepšený systém rozvržení.
- Okenní původ je nyní dodáván ve smyslu podílu obrazovkou absolutní polohy, nikoli.
- Pevná "id" ownerclass na hlavní funkce prototypu generaci a přidal & quot; ownerimport & quot; globální proměnné v UI skriptu.
- Útěk nové řádky v řetězci generování kódu.
- přidané dokumentace k Button.buttonType a Button.bezelStyle a přidal demo na tlačítko s jiným rámečkem stylu.
- Pevné nejvíce do očí bijící úniky paměti.
- Opravena chyba, kdy atributy jako třída-level výchozí písma by neměla být generovány při generování více než jeden UI skript ve stejné python relaci.
- Windows nejsou uvolněny při zavření ve výchozím nastavení.
- Přidána podpora pro cyklické odkazy (okno nastavení jednoho ze svých vlastností k položce, která požaduje, aby okno před vznikají, například, initialFirstResponder). Již dříve jsme nemohli vytvořit kód pro takové vazby.
- Made align argument View.packRelativeTo (volitelné).
Co je nového ve verzi 0.2.0:
- Added Sphinx dokumentace
- doplněn příkaz xibless chodu pro rychlé UI náhledy.
- Added Combobox a Pop-up.
Požadavky na :
- Python
Komentáře nebyl nalezen