Soubory .xib v Xamarin.Macu
Tento článek popisuje práci se soubory .xib vytvořenými v aplikaci Xcode Interface Builder vytváření a udržování uživatelských rozhraní pro aplikaci Xamarin.Mac.
Poznámka
Preferovaný způsob, jak vytvořit uživatelské rozhraní pro aplikaci Xamarin.Mac, je pomocí scénářů. Tato dokumentace byla ponechána na místě z historických důvodů a pro práci se staršími projekty Xamarin.Mac. Další informace najdete v naší dokumentaci Úvod do scénářů.
Přehled
Při práci s C# a .NET v aplikaci Xamarin.Mac máte přístup ke stejným prvkům a nástrojům uživatelského rozhraní jako vývojář pracující v Objective-CObjective-C Vzhledem k tomu, že Xamarin.Mac se integruje přímo s Xcode, můžete použít Interface Builder Xcode k vytvoření a údržbě uživatelských rozhraní (nebo je volitelně vytvořit přímo v kódu jazyka C#).
Soubor .xib používá macOS k definování prvků uživatelského rozhraní vaší aplikace (jako jsou nabídky, Windows, zobrazení, popisky, textová pole), které se vytvářejí a udržují graficky v grafickém rozhraní Interface Builder.
V tomto článku probýme základy práce se soubory .xib v aplikaci Xamarin.Mac. Důrazně doporučujeme, abyste si nejprve prošli článek Hello, Mac, který se zabývá klíčovými koncepty a technikami, které budeme v tomto článku používat.
Možná se budete chtít podívat i na část dokumentu Exposing C# classes / methods to Objective-CExposing C# classes / methods to Objective-C která vysvětluje atributy a používané k připojení tříd jazyka C# k objektům a prvkům uživatelského RegisterExportObjective-C rozhraní.
Úvod do Xcode a Interface Builder
V rámci Xcode vytvořil Apple nástroj s názvem Interface Builder, který vám umožňuje vytvořit Uživatelské rozhraní v návrháři. Xamarin.Mac se plynule integruje s Interface Builder, což vám umožní vytvořit uživatelské rozhraní se stejnými nástroji jako Objective-C uživatelé.
Součásti Xcode
Když otevřete soubor .xib v Xcode z Visual Studio pro Mac, otevře se s navigátorem Project vlevo, hierarchií rozhraní a Editorem rozhraní uprostřed a s částí Nástroje vlastností vpravo:
Pojďme se podívat, co jednotlivé oddíly Xcode dělá a jak je použijete k vytvoření rozhraní pro aplikaci Xamarin.Mac.
Project navigace
Když otevřete soubor .xib pro úpravy v Xcode, Visual Studio pro Mac na pozadí vytvoří soubor projektu Xcode pro komunikaci změn mezi sebou a Xcode. Když později přepnete zpět na Visual Studio pro Mac z Xcode, všechny změny provedené v tomto projektu se synchronizují s projektem Xamarin.Mac pomocí Visual Studio pro Mac.
Oddíl Project Navigation umožňuje přecházet mezi všemi soubory, které tvoří tento projekt shim Xcode. Obvykle vás budou zajímat pouze soubory .xib v tomto seznamu, například MainMenu.xib a MainWindow.xib.
Hierarchie rozhraní
Oddíl Hierarchie rozhraní umožňuje snadný přístup k několika klíčovým vlastnostem rozhraní Uživatelské rozhraní, jako jsou zástupné symboly a hlavní okno. Tuto část můžete použít také pro přístup k jednotlivým prvkům (zobrazením), které tvoří vaše uživatelské rozhraní, a k úpravě způsobu jejich vnoření jejich přetažením v rámci hierarchie.
Editor rozhraní
Část Editor rozhraní poskytuje plochu, na které graficky rozložení Uživatelské rozhraní. Přetažením prvků z části Knihovna v části Nástroje vlastností vytvoříte svůj návrh. Když přidáváte prvky uživatelského rozhraní (zobrazení) na návrhovou plochu, přidají se do části Hierarchie rozhraní v pořadí, ve které se zobrazují v Editoru rozhraní.
Nástroje & pro vlastnosti
Část Properties Utilities (Nástroje vlastností) je rozdělená do dvou hlavních oddílů, se kterou budeme pracovat: Vlastnosti (také nazývané inspektory) a Knihovna:

Zpočátku je tato část téměř prázdná, ale pokud vyberete prvek v editoru rozhraní nebo hierarchii rozhraní ,část Vlastnosti se naplní informacemi o daném prvku a vlastnostech, které můžete upravit.
V části Vlastnosti je 8 různých karet inspektoru, jak je znázorněno na následujícím obrázku:
Zleva doprava jsou tyto karty:
- Inspektor souborů – Inspektor souborů zobrazuje informace o souboru, například název souboru a umístění upravovaných souborů Xib.
- Rychlá nápověda – karta Rychlá nápověda poskytuje kontextovou nápovědu na základě toho, co je vybráno v Xcode.
- Identity Inspector – Inspektor identit poskytuje informace o vybraném ovládacím prvku nebo zobrazení.
- Inspektor atributů – Inspektor atributů umožňuje přizpůsobit různé atributy vybraného ovládacího prvku nebo zobrazení.
- Inspektor velikostí – Inspektor velikosti umožňuje řídit velikost a chování při změny velikosti vybraného ovládacího prvku nebo zobrazení.
- Inspektor připojení – inspektor připojení zobrazuje výstupní a akční připojení vybraných ovládacích prvků. Za chvíli prozkoumáme výstupy a akce.
- Bindings Inspector – Nástroj Bindings Inspector umožňuje nakonfigurovat ovládací prvky tak, aby jejich hodnoty byly automaticky svázány s datovými modely.
- Inspektor efektů zobrazení – Inspektor efektů zobrazení umožňuje určit vliv na ovládací prvky, jako jsou animace.
V části Knihovna najdete ovládací prvky a objekty, které se mají umístit do návrháře pro grafické vytvoření uživatelského rozhraní:

Teď, když jste se seznámili s prostředím IDE Xcode a Interface Builder, se podíváme na jeho použití k vytvoření uživatelského rozhraní.
Vytváření a údržba oken v Xcode
Preferovanou metodou pro vytvoření Uživatelské rozhraní aplikace Xamarin.Mac je použití scénářů (další informace najdete v naší dokumentaci Úvod do scénářů) a v důsledku toho budou všechny nové projekty, které v Xamarin.Macu začaly, používat scénáře ve výchozím nastavení.
Pokud chcete přepnout na používání uživatelského rozhraní založeného na .xib, proveďte následující:
Otevřete Visual Studio pro Mac a spusťte nový projekt Xamarin.Mac.
V Oblast řešeníklikněte pravým tlačítkem na projekt a vyberte Přidatnový soubor...
Vyberte MacWindows Controller:

Jako
MainWindownázev zadejte a klikněte naMainWindowNový:
Znovu klikněte pravým tlačítkem na projekt a vyberte Přidatnový soubor...
Vyberte hlavnínabídku Macu:

Ponechte název a
MainMenuklikněte naMainMenuNový.V Oblast řešení vyberte soubor Main.storyboard, klikněte pravým tlačítkem a vyberte Odebrat:

V dialogovém okně Odebrat klikněte na tlačítko Odstranit:

V Oblast řešenípoklikejte na soubor Info.plist a otevřete ho pro úpravy.
V
MainMenurozevíracímMainMenuvyberte :V Oblast řešenípoklikejte na soubor MainMenu.xib a otevřete ho pro úpravy v souboru Interface Builder.
V nástroji Library Inspectorzadejte do vyhledávacího pole a přetáhněte nový objekt na návrhovou plochu:
V identity Inspectoru zadejte jako třídu:
V hierarchii rozhraní vyberte Vlastník souboru,přepněte do inspektoru připojení a přetáhněte řádek z delegáta na objekt, který jste právě přidali do projektu:
Uložte změny a vraťte se do Visual Studio pro Mac.
Po provedení všech těchto změn upravte soubor AppDelegate.cs, aby vypadal takto:
using AppKit;
using Foundation;
namespace MacXib
{
[Register ("AppDelegate")]
public class AppDelegate : NSApplicationDelegate
{
public MainWindowController mainWindowController { get; set; }
public AppDelegate ()
{
}
public override void DidFinishLaunching (NSNotification notification)
{
// Insert code here to initialize your application
mainWindowController = new MainWindowController ();
mainWindowController.Window.MakeKeyAndOrderFront (this);
}
public override void WillTerminate (NSNotification notification)
{
// Insert code here to tear down your application
}
}
}
Hlavní okno aplikace je teď definované v souboru .xib, který se automaticky zahrne do projektu při přidávání kontroleru okna. Pokud chcete upravit návrh Windows, v Oblast řešenípoklikejte na soubor MainWindow.xib:

Tím se otevře návrh okna v souboru Interface Builder Xcode:
Standardní pracovní postup okna
Pro každé okno, které vytvoříte a budete s ním pracovat v aplikaci Xamarin.Mac, je proces v podstatě stejný:
- Pro nová okna, která nejsou automaticky přidána do projektu, přidejte do projektu novou definici okna.
- Dvojím kliknutím na soubor .xib otevřete návrh okna pro úpravy v souboru Interface Builder.
- V inspektoru atributů a v inspektoru velikosti nastavte všechny požadované vlastnosti okna.
- Přetáhněte ovládací prvky potřebné k sestavení rozhraní a nakonfigurujte je v nástroji Attribute Inspector.
- Ke zpracování velikosti prvků uživatelského rozhraní použijte Inspektor velikosti.
- Zpřístupňuje prvky uživatelského rozhraní okna kódu C# prostřednictvím výstupů a akcí.
- Uložte změny a přepněte zpět na Visual Studio pro Mac synchronizaci s Xcode.
Návrh rozložení okna
Proces rozložení objektu Uživatelské rozhraní ve Tvůrci rozhraní je v podstatě stejný pro každý prvek, který přidáte:
- V inspektoru knihovny vyhledejte požadovaný ovládací prvek, přetáhněte ho do Editoru rozhraní a umístěte ho.
- Nastavte všechny požadované vlastnosti okna v inspektoru atributů.
- Použijte inspektora velikosti pro zpracování změny velikosti prvků uživatelského rozhraní.
- Pokud používáte vlastní třídu, nastavte ji v inspektoru identity.
- Zveřejňujte prvky uživatelského rozhraní pro kód jazyka C# prostřednictvím výstupů a akcí.
- uložte své změny a přepněte zpět na Visual Studio pro Mac a synchronizujte se s Xcode.
Příklad:
V Xcode přetáhněte tlačítko pro vložení z části Knihovna:
Přetáhněte tlačítko na okno v editoru rozhraní:
Klikněte na vlastnost title v inspektoru atributů a změňte název tlačítka na :

Přetáhněte popisek z části Knihovna:
Přetáhněte popisek na okno vedle tlačítka v editoru rozhraní:
Najeďte pravým táhlem popisku a přetáhněte ho, dokud není poblíž okraje okna:
S popiskem stále vybraným v editoru rozhranípřepněte do nástroje pro kontrolu velikosti:
–V poli automatické změny velikosti klikněte na ostrou červenou hranatou závorku vpravo a v části střední červená vodorovná šipka uprostřed:
velikostiTím se zajistí, že se popisek roztáhne do zvětšeného a zmenšeného velikosti okna v běžící aplikaci. Červené závorky a horní a levý okraj pole pro automatickou změnu určují, že popisek se zablokuje na příslušné umístění X a Y.
Uložení změn do uživatelského rozhraní
Vzhledem k tomu, že jste změnili velikost a přesouváte ovládací prvky kolem, měli byste si všimnout, že Interface Builder vám poskytne užitečné pomocné pokyny pro modul snap-in, které jsou založené na pokynech pro rozhraní OS X Tyto pokyny vám pomůžou vytvořit vysoce kvalitní aplikace, které budou mít známý vzhled a chování pro uživatele Mac.
Pokud se podíváte na oddíl hierarchie rozhraní , Všimněte si, jak se zobrazuje rozložení a hierarchie prvků, které tvoří naše uživatelské rozhraní:

Odsud můžete vybrat položky, které chcete upravit nebo změnit uspořádání prvků uživatelského rozhraní, pokud je to potřeba. Například pokud byl prvek uživatelského rozhraní pokryt jiným prvkem, můžete ho přetáhnout do dolní části seznamu a nastavit tak jeho položku v pravém horním rohu.
další informace o práci s Windows v aplikaci Xamarin. Mac najdete v dokumentaci k Windows .
Vystavení prvků uživatelského rozhraní pro kód jazyka C#
Jakmile dokončíte rozložení vzhledu a chování uživatelského rozhraní v Interface Builder, bude nutné vystavit prvky uživatelského rozhraní, aby k nim bylo možné přihlížet z kódu jazyka C#. K tomu budete používat akce a výstupy.
Nastavení vlastního řadiče hlavního okna
Aby bylo možné vytvořit akce a akce pro vystavení prvků uživatelského rozhraní v kódu jazyka C#, bude nutné, aby aplikace Xamarin. Mac používala vlastní kontroler oken.
Postupujte následovně:
Otevřete scénář aplikace v Interface Builder Xcode.
Vyberte
NSWindowControllerv návrhová plocha.Přepněte do zobrazení inspektora identit a jako název třídyzadejte:
uložte změny a vraťte se do Visual Studio pro Mac k synchronizaci.
soubor WindowController. cs se přidá do projektu v Oblast řešení v Visual Studio pro Mac:

Znovu otevřete scénář v Interface Builder Xcode.
Soubor WindowController. h bude k dispozici pro použití:
Výstupy a akce
Co jsou tedy možnosti a akce? V tradičním programování uživatelského rozhraní rozhraní .NET je ovládací prvek v uživatelském rozhraní po přidání automaticky vystaven jako vlastnost. V Mac fungují jinak, pouhým přidáním ovládacího prvku do zobrazení ho nepůjde zpřístupnit pro kód. Vývojář musí explicitně zveřejnit prvek uživatelského rozhraní pro kód. V takovém případě Apple nabízí dvě možnosti:
- Z-výstupy jsou podobné vlastnostem. Pokud ovládáte řízení do zásuvky, je zpřístupněno pro váš kód prostřednictvím vlastnosti, takže můžete provádět akce, jako je připojení obslužných rutin událostí, volání metod atd.
- Akce – akce jsou analogické ke vzoru příkazu v subsystému WPF. Například když je provedena akce na ovládacím prvku, řekněme kliknutí na tlačítko, ovládací prvek automaticky zavolá metodu ve vašem kódu. Akce jsou výkonné a pohodlné, protože ke stejné akci můžete nastavovat mnoho ovládacích prvků.
V Xcode se nedají a akce přidávají přímo v kódu přes ovládací prvek – přetahování. Konkrétně to znamená, že pokud chcete vytvořit výstup nebo akci, můžete zvolit, který prvek ovládacího prvku chcete přidat zásuvku nebo akci, držet na klávesnici tlačítko řízení a přetáhnout tento ovládací prvek přímo do kódu.
Pro vývojáře Xamarin. Mac to znamená, že přetáhnete do Objective-C souborů zástupných procedur, které odpovídají souboru C#, ve kterém chcete vytvořit zásuvku nebo akci. Visual Studio pro Mac vytvořili soubor s názvem MainWindow. h jako součást projektu překrytí Xcode, který vygeneroval pro použití Interface Builder:
Tento soubor stub. h zrcadlí MainWindow. Designer. cs , který se automaticky přidá do projektu Xamarin. Mac při vytvoření nového . Tento soubor se použije k synchronizaci změn provedených Interface Builder a je tam, kde vytvoříme vaše akce a akce, aby se prvky uživatelského rozhraní zobrazovaly v kódu C#.
Přidání zásuvky
Základní znalosti o tom, jaké akce a akce jsou, si podívejme na vytvoření zásuvky, která zpřístupňuje prvek uživatelského rozhraní pro kód jazyka C#.
Postupujte následovně:
V Xcode v pravém horním rohu obrazovky klikněte na tlačítko dvojitý kroužek a otevřete Editor pomocníka:
Xcode se přepne na režim rozděleného zobrazení s editorem rozhraní na jedné straně a editoru kódu na druhé straně.
Všimněte si, že Xcode automaticky vybral soubor MainWindowController. m v editoru kódu, který není správný. Pokud si pamatujete z naší diskuze o tom, jaké možnosti a akce jsou výše, musíme mít vybranou možnost MainWindow. h .
V horní části editoru kódu klikněte na Automatický odkaz a vyberte soubor MainWindow. h :
Xcode by teď měl mít vybraný správný soubor:
Poslední krok byl velmi důležitý! Pokud nemáte vybraný správný soubor, nebudete moct vytvářet akce a akce, jinak se budou v C# vystavovat chybnou třídou.
V editoru rozhranípodržte stisknutou klávesu Control na klávesnici a klikněte na přetáhnout popisek, který jsme vytvořili výše, do editoru kódu, který se nachází hned pod kódem:
Zobrazí se dialogové okno. Nechejte připojení nastavené na zásuvky a zadejte název:
pro vytvoření zásuvky klikněte na tlačítko Připojení :
jste vystavení .Uložte změny souboru.
Přidání akce
Teď se podíváme na vytvoření akce, která vystaví interakci uživatele s uživatelským ROZHRANÍm v kódu C#.
Postupujte následovně:
Ujistěte se, že je stále v editoru pomocníka a soubor MainWindow. h je viditelný v editoru kódu.
V editoru rozhranípodržte stisknutou klávesu Control na klávesnici a klikněte na tlačítko, které jsme vytvořili výše, a přetáhněte ho na Editor kódu hned pod kódem:
Změňte typ připojení na akci:
ClickedButtonJakoClickedButtonzadejte:klikněte na tlačítko Připojení pro vytvoření akce:
Dokončená byla .Uložte změny souboru.
díky kabelovému uživatelskému rozhraní a jeho zpřístupnění kódu v jazyce C# přepněte zpět na Visual Studio pro Mac a umožněte synchronizaci změn z Xcode a Interface Builder.
Zápis kódu
Když máte vytvořené uživatelské rozhraní a jeho prvky uživatelského rozhraní, které jsou zpřístupněny pro kód prostřednictvím možností a akcí, jste připraveni napsat kód, který umožní programu život. Například otevřete soubor MainWindow. cs pro úpravy tak, že na něj dvakrát kliknete v oblast řešení:
A přidejte následující kód do MainWindow třídy pro práci s ukázkovým výstupem, který jste vytvořili výše:
private int numberOfTimesClicked = 0;
...
public override void AwakeFromNib ()
{
base.AwakeFromNib ();
// Set the initial value for the label
ClickedLabel.StringValue = "Button has not been clicked yet.";
}
Všimněte si, že v NSLabel jazyce C# je k dispozici přímý název, který jste přiřadili v Xcode při vytvoření jeho zásuvky v Xcode, v tomto případě se nazývá ClickedLabel . K libovolné metodě nebo vlastnosti vystaveného objektu můžete přistupovat stejným způsobem jako v případě normální třídy jazyka C#.
Důležité
Je nutné použít AwakeFromNib místo jiné metody, jako Initialize je například, protože AwakeFromNib je volána AwakeFromNib načtení operačního systému a vytvoření instance uživatelského rozhraní ze souboru. XIB. Pokud jste se pokusili získat přístup k ovládacímu prvku popisek před tím, než se soubor. xib kompletně načte a vytvoří se jeho instance, zobrazí se NullReferenceException Chyba, protože ovládací prvek popisek se ještě nevytvořil.
Dále do třídy přidejte následující částečnou třídu MainWindow :
partial void ClickedButton (Foundation.NSObject sender) {
// Update counter and label
ClickedLabel.StringValue = string.Format("The button has been clicked {0} time{1}.",++numberOfTimesClicked, (numberOfTimesClicked < 2) ? "" : "s");
}
Tento kód se připojí k akci, kterou jste vytvořili v Xcode a Interface Builder a bude volána vždy, když uživatel klikne na tlačítko.
Některé prvky uživatelského rozhraní automaticky mají předdefinované akce, například položky ve výchozím řádku nabídek, jako je například otevřít... Item ( ). V oblast řešenídvakrát klikněte na soubor AppDelegate. cs a otevřete ho pro úpravy a přidejte následující kód pod metodu:
[Export ("openDocument:")]
void OpenDialog (NSObject sender)
{
var dlg = NSOpenPanel.OpenPanel;
dlg.CanChooseFiles = false;
dlg.CanChooseDirectories = true;
if (dlg.RunModal () == 1) {
var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Informational,
InformativeText = "At this point we should do something with the folder that the user just selected in the Open File Dialog box...",
MessageText = "Folder Selected"
};
alert.RunModal ();
}
}
Klíč k tomuto klíči je [Export ("openDocument:")] , informuje NSMenu o tom, že [Export ("openDocument:")] má metodu void OpenDialog (NSObject sender) , která reaguje na openDocument: akci.
Další informace o práci s nabídkami najdete v dokumentaci k nabídkám .
Synchronizace změn pomocí Xcode
když přepnete zpátky na Visual Studio pro Mac z Xcode, všechny změny provedené v Xcode se automaticky synchronizují s vaším projektem Xamarin. Mac.
Pokud v oblast řešení vyberete MainWindow. Designer. cs , budete moct zjistit, jak naše odbytiště a akce jsou v našem kódu v jazyce C# kabelové:
Všimněte si, jak tyto dvě definice v souboru MainWindow. Designer. cs :
[Outlet]
AppKit.NSTextField ClickedLabel { get; set; }
[Action ("ClickedButton:")]
partial void ClickedButton (Foundation.NSObject sender);
Zastavte si definice v souboru MainWindow. h v Xcode:
@property (assign) IBOutlet NSTextField *ClickedLabel;
- (IBAction)ClickedButton:(id)sender;
jak vidíte, Visual Studio pro Mac naslouchá změnám v souboru. h a poté automaticky synchronizuje tyto změny v příslušném souboru . designer. cs a zpřístupňuje je vaší aplikaci. můžete si také všimnout, že MainWindow. designer. cs je částečná třída, takže Visual Studio pro Mac nemusíte upravovat MainWindow. cs , které by přepsaly změny, které jsme provedli ve třídě.
Normálně nikdy nebudete muset otevřít MainWindow. Designer. cs sami, ale tady se prezentuje jenom pro účely vzdělávání.
Důležité
ve většině případů Visual Studio pro Mac automaticky uvidí všechny změny provedené v Xcode a synchronizuje je s vaším projektem Xamarin. Mac. v případě výskytu, ke kterému se synchronizace neprovádí automaticky, přepněte zpátky na Xcode a zpátky na Visual Studio pro Mac. Obvykle se spustí cyklus synchronizace.
Přidání nového okna do projektu
Kromě hlavního okna dokumentu může aplikace Xamarin. Mac vyžadovat zobrazení dalších typů oken uživateli, jako jsou předvolby nebo panely inspektora. Při přidávání nového okna do projektu byste měli vždy použít okno kakaa s možností kontroler , protože to usnadňuje proces načítání okna ze souboru. XIB.
Chcete-li přidat nové okno, postupujte následovně:
V oblast řešeníklikněte pravým tlačítkem myši na projekt a vyberte možnost Přidatnový soubor...
V dialogovém okně Nový soubor vyberte Xamarin. Mackakaové box s řadičem:

Jako
PreferencesWindowPreferencesWindowzadejte a klikněte na tlačítko Nový .Dvojím kliknutím na soubor PreferencesWindow. xib ho otevřete pro úpravy v Interface Builder:
Navrhněte své rozhraní:
uložte změny a vraťte se do Visual Studio pro Mac pro synchronizaci s Xcode.
Přidejte následující kód do AppDelegate. cs pro zobrazení nového okna:
[Export("applicationPreferences:")]
void ShowPreferences (NSObject sender)
{
var preferences = new PreferencesWindowController ();
preferences.Window.MakeKeyAndOrderFront (this);
}
var preferences = new PreferencesWindowController ();Čára vytvoří novou instanci kontroleru oken, která načte okno ze souboru. xib a rozrovná ho. Na preferences.Window.MakeKeyAndOrderFront (this); řádku se zobrazí nové okno pro uživatele.
Pokud spustíte kód a vyberete Předvolby... v nabídce aplikace, zobrazí se okno:

další informace o práci s Windows v aplikaci Xamarin. Mac najdete v dokumentaci k Windows .
Přidání nového zobrazení do projektu
Existují situace, kdy je jednodušší rozdělit návrh okna do několika, více spravovatelných souborů. XIB. Například například při vypínání obsahu hlavního okna při výběru položky panelu nástrojů v okně předvoleb nebo při odměně obsahu v reakci na výběr zdrojového seznamu .
Při přidávání nového zobrazení do projektu byste měli vždy použít možnost zobrazení kakaa s řadičem , protože to usnadňuje proces načítání zobrazení ze souboru. XIB.
Chcete-li přidat nové zobrazení, postupujte následovně:
V oblast řešeníklikněte pravým tlačítkem myši na projekt a vyberte možnost Přidatnový soubor...
V dialogovém okně Nový soubor vyberte Xamarin. Mac– zobrazení kakaa s kontrolérem:
zobrazeníJako
SubviewTableSubviewTablezadejte a klikněte na tlačítko Nový .Dvakrát klikněte na soubor . xib podzobrazení a otevřete ho pro úpravy v Interface Builder a navrhněte uživatelské rozhraní:
Vysílat všechny požadované akce a jejich výstupy.
uložte změny a vraťte se do Visual Studio pro Mac pro synchronizaci s Xcode.
Dále upravte podzobrazení. cs a přidejte následující kód do souboru AwakeFromNib , abyste naplnili nové zobrazení při načtení:
public override void AwakeFromNib ()
{
base.AwakeFromNib ();
// Create the Product Table Data Source and populate it
var DataSource = new ProductTableDataSource ();
DataSource.Products.Add (new Product ("Xamarin.iOS", "Allows you to develop native iOS Applications in C#"));
DataSource.Products.Add (new Product ("Xamarin.Android", "Allows you to develop native Android Applications in C#"));
DataSource.Products.Add (new Product ("Xamarin.Mac", "Allows you to develop Mac native Applications in C#"));
DataSource.Sort ("Title", true);
// Populate the Product Table
ProductTable.DataSource = DataSource;
ProductTable.Delegate = new ProductTableDelegate (DataSource);
// Auto select the first row
ProductTable.SelectRow (0, false);
}
Přidejte do projektu výčet, abyste mohli sledovat, které zobrazení se aktuálně zobrazuje. Například SubviewType. cs:
public enum SubviewType
{
None,
TableView,
OutlineView,
ImageView
}
Upravte soubor. xib okna, který bude spotřebovávat zobrazení a zobrazí se. Přidejte vlastní zobrazení , které bude sloužit jako kontejner pro zobrazení, jakmile je načteno do paměti podle kódu jazyka C# a zveřejní na výstupu s názvem :
uložte změny a vraťte se do Visual Studio pro Mac pro synchronizaci s Xcode.
Dále upravte soubor. cs okna, ve kterém se bude zobrazovat nové zobrazení (například MainWindow. cs), a přidejte následující kód:
private SubviewType ViewType = SubviewType.None;
private NSViewController SubviewController = null;
private NSView Subview = null;
...
private void DisplaySubview(NSViewController controller, SubviewType type) {
// Is this view already displayed?
if (ViewType == type) return;
// Is there a view already being displayed?
if (Subview != null) {
// Yes, remove it from the view
Subview.RemoveFromSuperview ();
// Release memory
Subview = null;
SubviewController = null;
}
// Save values
ViewType = type;
SubviewController = controller;
Subview = controller.View;
// Define frame and display
Subview.Frame = new CGRect (0, 0, ViewContainer.Frame.Width, ViewContainer.Frame.Height);
ViewContainer.AddSubview (Subview);
}
Když musíme zobrazit nové zobrazení načtené ze souboru. xib v kontejneru okna ( vlastní zobrazení je přidané výše), tento kód zpracovává odebrání všech existujících zobrazení a jejich odchodu pro nový. Vypadá to, že už máte zobrazené zobrazení, pokud ho odeberete z obrazovky. V dalším kroku se převezme zobrazení, které bylo předáno (načtené z kontroleru zobrazení), mění jeho velikost, aby se vešlo do oblasti obsahu, a přidá ho do obsahu pro zobrazení.
Chcete-li zobrazit nové zobrazení, použijte následující kód:
DisplaySubview(new SubviewTableController(), SubviewType.TableView);
Tím se vytvoří nová instance kontroleru zobrazení pro zobrazení nového zobrazení, nastaví jeho typ (jak je určeno výčtem přidaným do projektu) a použije DisplaySubview metodu přidanou do třídy okna pro zobrazení vlastního zobrazení. Například:
další informace o práci s Windows v aplikaci Xamarin. Mac najdete v dokumentaci k Windows a dialogům .
Souhrn
V tomto článku se podrobně podíváme na práci se soubory. xib v aplikaci Xamarin. Mac. Zjistili jsme různé typy a použití souborů. xib k vytvoření uživatelského rozhraní vaší aplikace, jak vytvářet a udržovat soubory. xib v Xcode Interface Builder a jak pracovat se soubory. xib v kódu jazyka C#.
















pomocníka pro
,
Vytvoření nového zásuvky přetažením vytvoření
Vytvoření akce přetažením
.
soubor




