Standardní ovládací prvky v Xamarin. Mac
Tento článek popisuje práci se standardními Appkitu ovládacími prvky, jako jsou tlačítka, popisky, textová pole, zaškrtávací políčka a segmentované ovládací prvky v aplikaci Xamarin. Mac. Popisuje jejich přidání do rozhraní s Interface Builder a interakci s nimi v kódu.
Při práci s C# a .NET v aplikaci Xamarin. Mac máte přístup ke stejným Appkitu ovládacím prvkům, které vývojář pracuje v Objective-C a Objective-C . Protože se Xamarin. Mac integruje přímo s Xcode, můžete použít Interface Builder Xcode k vytváření a údržbě ovládacích prvků appkitu (nebo je případně můžete vytvořit přímo v kódu C#).
Ovládací prvky Appkitu jsou prvky uživatelského rozhraní, které slouží k vytvoření uživatelského rozhraní vaší aplikace Xamarin. Mac. Skládají se z prvků, jako jsou tlačítka, popisky, textová pole, zaškrtávací políčka a segmentované ovládací prvky, které způsobují okamžité akce nebo viditelné výsledky, pokud je uživatel pracuje s nimi.
V tomto článku se seznámíte se základy práce s ovládacími prvky Appkitu v aplikaci Xamarin. Mac. Důrazně doporučujeme, abyste nejprve pracovali v článku Hello, Mac , konkrétně v částech Úvod k Xcode a Interface Builder a akcím a akcím , které se týkají klíčových konceptů a technik, které v tomto článku budeme používat.
Můžete se podívat i na část dokumentu s dalšími Exposing C# classes / methods to Objective-CExposing C# classes / methods to Objective-C a vysvětluje RegisterExport příkazy a používané k navýšení tříd jazyka C# do Objective-C objektů a prvků uživatelského rozhraní.
Úvod k ovládacím prvkům a zobrazením
macOS (dříve označované jako Mac OS X) poskytuje standardní sadu ovládacích prvků uživatelského rozhraní prostřednictvím architektury Appkitu. Skládají se z prvků, jako jsou tlačítka, popisky, textová pole, zaškrtávací políčka a segmentované ovládací prvky, které způsobují okamžité akce nebo viditelné výsledky, pokud je uživatel pracuje s nimi.
Všechny ovládací prvky Appkitu mají standardní, vestavěný vzhled, který bude vhodný pro většinu použití, některé určují alternativní vzhled pro použití v oblasti rámce okna nebo v kontextu efektu živosti , jako je například v oblasti postranního panelu nebo v widgetu centra oznámení.
Apple při práci s ovládacími prvky Appkitu doporučujeme následující pokyny:
- Vyhněte se kombinování velikostí ovládacích prvků ve stejném zobrazení.
- Obecně se vyhnete změně velikosti ovládacích prvků svisle.
- Použijte systémové písmo a správnou velikost textu v ovládacím prvku.
- Použijte správné mezery mezi ovládacími prvky.
Další informace najdete v části informace o ovládacích prvcích a zobrazeních v pokynech k rozhraní Apple OS X v operačním systému.
Používání ovládacích prvků v rámečku okna
Existuje podmnožina Appkitu ovládacích prvků, které obsahují styl zobrazení, který umožňuje zahrnutí do oblasti rámce okna. Příklad najdete na panelu nástrojů poštovní aplikace:
- Tlačítko s zaobleným texturou – a se stylem
NSTexturedRoundedBezelStyle. - Rozdělené rozdělené ovládací prvky s texturou a se stylem
NSSegmentStyleTexturedRounded. - Rozdělené rozdělené ovládací prvky s texturou a se stylem
NSSegmentStyleSeparated. - Kulatá nabídka pro Pop-Up s texturou – a se stylem
NSTexturedRoundedBezelStyle. - Kulatá nabídka pro Drop-Down s texturou – a se stylem
NSTexturedRoundedBezelStyle. - Panel hledání – A .
Při práci s ovládacími prvky Appkitu v rámečku okna doporučujeme Apple navrhovat následující pokyny:
- V těle okna nepoužívejte styly ovládacích prvků pro rám okna.
- V rámci okna nelze použít ovládací prvky nebo styly v těle okna.
Další informace najdete v části informace o ovládacích prvcích a zobrazeních v pokynech k rozhraní Apple OS X v operačním systému.
Vytvoření uživatelského rozhraní v Interface Builder
Když vytvoříte novou aplikaci Xamarin. Mac kakaa, ve výchozím nastavení se zobrazí standardní prázdné okno. Tato okna jsou definována v souboru, který je .storyboard automaticky zahrnutý v projektu. Chcete-li upravit návrh systému Windows, v Průzkumník řešenídvakrát klikněte na soubor:
Tím se otevře návrh okna Interface Builder Xcode:
Chcete-li vytvořit uživatelské rozhraní, přetáhněte prvky uživatelského rozhraní (ovládací prvky Appkitu) z inspektoru knihovny do editoru rozhraní v Interface Builder. V následujícím příkladu byl svislý ovládací prvek rozděleného zobrazení drogou od kontrolora knihovny a umístěn do okna v editoru rozhraní:
Další informace o vytváření uživatelského rozhraní v Interface Builder najdete v našem úvodu k dokumentaci k Xcode a Interface Builder .
Určení velikosti a umístění
Po zahrnutí ovládacího prvku do uživatelského rozhraní použijte Editor omezení a nastavte jeho polohu a velikost tak, že zadáte hodnoty ručně a nastavíte, jak je ovládací prvek automaticky umístěn a má velikost při změně velikosti nadřazeného okna nebo zobrazení:
Pokud chcete ovládací prvek umístit na dané umístění (x, y), použijte červené I svislé ohraničení kolem vnějšího pole pro změnu velikosti . Například:
Určuje, že vybraný ovládací prvek (v editoru rozhranízobrazení hierarchie) bude zablokovaný do horního a pravého umístění okna nebo zobrazení, když se změní jeho velikost nebo přesunutí.
Další prvky vlastností ovládacího prvku editor, jako je výška a Šířka:
Zarovnání prvků s omezeními můžete také řídit pomocí editoru zarovnání:
Důležité
Na rozdíl od iOS, kde (0, 0) je levý horní roh obrazovky, v macOS (0, 0) je spodní levý roh. Důvodem je to, že macOS používá matematickou souřadnicový systém s číselnými hodnotami, které zvyšují hodnotu směrem nahoru a vpravo. Tento postup je potřeba vzít v úvahu při umísťování ovládacích prvků Appkitu do uživatelského rozhraní.
Nastavení vlastní třídy
Existují časy při práci s ovládacími prvky Appkitu, které budete muset podtřídit a stávající ovládací prvek a vytvořit vlastní vlastní verzi této třídy. Například definujte vlastní verzi zdrojového seznamu:
using System;
using AppKit;
using Foundation;
namespace AppKit
{
[Register("SourceListView")]
public class SourceListView : NSOutlineView
{
#region Computed Properties
public SourceListDataSource Data {
get {return (SourceListDataSource)this.DataSource; }
}
#endregion
#region Constructors
public SourceListView ()
{
}
public SourceListView (IntPtr handle) : base(handle)
{
}
public SourceListView (NSCoder coder) : base(coder)
{
}
public SourceListView (NSObjectFlag t) : base(t)
{
}
#endregion
#region Override Methods
public override void AwakeFromNib ()
{
base.AwakeFromNib ();
}
#endregion
#region Public Methods
public void Initialize() {
// Initialize this instance
this.DataSource = new SourceListDataSource (this);
this.Delegate = new SourceListDelegate (this);
}
public void AddItem(SourceListItem item) {
if (Data != null) {
Data.Items.Add (item);
}
}
#endregion
#region Events
public delegate void ItemSelectedDelegate(SourceListItem item);
public event ItemSelectedDelegate ItemSelected;
internal void RaiseItemSelected(SourceListItem item) {
// Inform caller
if (this.ItemSelected != null) {
this.ItemSelected (item);
}
}
#endregion
}
}
Kde [Register("SourceListView")] instrukce zpřístupňuje SourceListView třídu Objective-C tak, že se dá použít v Interface Builder. Další informace naleznete v Exposing C# classes / methods to Objective-C části dokumentu o Exposing C# classes / methods to Objective-C , vysvětluje RegisterExport příkazy a používané k drátování tříd jazyka C# do Objective-C objektů a prvků uživatelského rozhraní.
S výše uvedeným kódem můžete přetáhnout ovládací prvek Appkitu základního typu, který rozšiřujete, na návrhovou plochu (v níže uvedeném příkladu),přepnout na inspektor identity a nastavit vlastní třídu na název, který jste vystavili (příklad ):
Vystavení odbytišť a akcí
Předtím, než bude k ovládacímu prvku Appkitu přístup v kódu jazyka C#, je nutné ho zveřejnit buď jako zásuvku , nebo jako akci. Pokud to chcete provést, vyberte daný ovládací prvek buď v hierarchii rozhraní , nebo v editoru rozhraní a přepněte do zobrazení pomocníka (Ujistěte se, že máte okno vybrané pro úpravy):
Ovládací prvek – přetažením z ovládacího prvku Appkitu do .h souboru pro zahájení vytváření .h nebo Akce:
Vyberte typ expozice, která se má vytvořit, a pro výstup nebo akci zadejte název:
Další informace o práci sakcemi a akceminajdete v části Moje Možnosti a akce v úvodu k dokumentaci k Xcode a Interface Builder .
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 Průzkumník řešení vyberete možnost, uvidíte, SplitViewController.designer.cs jak se vaše zásuvka a Akce rozšířily v našem kódu jazyka C#: SplitViewController.designer.cs
Všimněte si, jak definice v SplitViewController.designer.cs souboru:
[Outlet]
AppKit.NSSplitViewItem LeftController { get; set; }
[Outlet]
AppKit.NSSplitViewItem RightController { get; set; }
[Outlet]
AppKit.NSSplitView SplitView { get; set; }
Zaúsečka s definicí v MainWindow.h souboru v Xcode:
@interface SplitViewController : NSSplitViewController {
NSSplitViewItem *_LeftController;
NSSplitViewItem *_RightController;
NSSplitView *_SplitView;
}
@property (nonatomic, retain) IBOutlet NSSplitViewItem *LeftController;
@property (nonatomic, retain) IBOutlet NSSplitViewItem *RightController;
@property (nonatomic, retain) IBOutlet NSSplitView *SplitView;
jak vidíte, Visual Studio pro Mac naslouchá změnám .h v souboru a potom je automaticky synchronizuje v příslušném .designer.cs souboru, aby je zveřejnila do vaší aplikace. můžete také všimnout, že SplitViewController.designer.cs se jedná o částečnou třídu, aby Visual Studio pro Mac nemusela upravovat, SplitViewController.cs která by přepsala všechny změny, které jsme provedli ve třídě.
Normálně se nikdy nebudete muset otevřít SplitViewController.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.
Práce s tlačítky
Appkitu nabízí několik typů tlačítek, které lze použít v návrhu uživatelského rozhraní. Další informace najdete v části tlačítka v tématu základní informace o rozhraních systému Apple OS X.
Pokud bylo tlačítko vystaveno prostřednictvím zásuvky, následující kód bude reagovat na jeho stisknutí:
ButtonOutlet.Activated += (sender, e) => {
FeedbackLabel.StringValue = "Button Outlet Pressed";
};
U tlačítek, která byla vystavena prostřednictvím akcí, se automaticky vytvoří metoda pro vás s názvem, který jste zvolili v Xcode. Chcete-li reagovat na akci, dokončete částečnou metodu ve třídě, na které byla Akce definována. Například:
partial void ButtonAction (Foundation.NSObject sender) {
// Do something in response to the Action
FeedbackLabel.StringValue = "Button Action Pressed";
}
U tlačítek se stavem (například On a Off)je možné stav zkontrolovat nebo nastavit vlastností proti výčtu. Například:
DisclosureButton.Activated += (sender, e) => {
LorumIpsum.Hidden = (DisclosureButton.State == NSCellStateValue.On);
};
Kde NSCellStateValue může být:
- On – tlačítko se stiskne nebo je vybraný ovládací prvek (například zaškrtnutí políčka).
- Vypnuto – tlačítko není natlačené nebo není vybraný ovládací prvek.
- Smíšená – kombinace stavů On a Off.
Označení tlačítka jako výchozího a nastavení ekvivalentu klíče
U libovolného tlačítka, které jste přidali do návrhu uživatelského rozhraní, můžete toto tlačítko označit jako výchozí tlačítko, které se aktivuje, když uživatel stiskne klávesu Return/Enter na klávesnici. V systému macOS toto tlačítko ve výchozím nastavení obdrží modrou barvu pozadí.
Pokud chcete nastavit tlačítko jako výchozí, vyberte ho na Interface Builder Xcode. Dále v inspektoru atributůvyberte pole Key Equivalent (Ekvivalentní klíč) a stiskněte klávesu Return/Enter:
Stejně tak můžete přiřadit libovolnou posloupnost kláves, kterou můžete použít k aktivaci tlačítka pomocí klávesnice místo myši. Například stisknutím kláves Command-C na obrázku výše.
Když je aplikace spuštěná a okno s tlačítkem Key (Tlačítko) je Key (Klávesa) a Focused (Zaostřené). Pokud uživatel stiskne Command-C, aktivuje se akce tlačítka (jako kdyby uživatel klikl na tlačítko).
Práce se zaškrtávacími políčky a přepínači
AppKit poskytuje několik typů zaškrtávacích políček a skupin přepínačů, které můžete použít v Uživatelské rozhraní Design. Další informace najdete v části Tlačítka v pokynech pro lidské rozhraní OS X společnostiApple.
Zaškrtávací políčka a přepínačů (vystavených prostřednictvím výstupů) mají stav (například On (Zap) a Off(Vypnuto), který se může ve výčtu zaškrtnout nebo nastavit vlastností . Například:
AdjustTime.Activated += (sender, e) => {
FeedbackLabel.StringValue = string.Format("Adjust Time: {0}",AdjustTime.State == NSCellStateValue.On);
};
Kde NSCellStateValue může být:
- On – tlačítko se stiskne nebo je vybraný ovládací prvek (například zaškrtnutí políčka).
- Vypnuto – tlačítko není natlačené nebo není vybraný ovládací prvek.
- Smíšená – kombinace stavů On a Off.
Pokud chcete vybrat tlačítko ve skupině přepínačů, vystavte přepínač, který se má vybrat jako výstup, a nastavte jeho vlastnost. Příklad:
partial void SelectCar (Foundation.NSObject sender) {
TransportationCar.State = NSCellStateValue.On;
FeedbackLabel.StringValue = "Car Selected";
}
Pokud chcete získat kolekci přepínačů, které mají fungovat jako skupina a automaticky zpracovat vybraný stav, vytvořte novou akci a připojte k ní každé tlačítko ve skupině:

Dále přiřaďte každému přepínači v inspektoru atributů jedinečný TagTag

Uložte změny a vraťte se Visual Studio pro Mac, přidejte kód pro zpracování akce, ke které jsou připojena všechna přepínačová tlačítka:
partial void NumberChanged(Foundation.NSObject sender)
{
var check = sender as NSButton;
Console.WriteLine("Changed to {0}", check.Tag);
}
Vlastnost můžete použít Tag k zobrazení vybraného přepínače.
Práce s ovládacími prvky nabídky
AppKit poskytuje několik typů ovládacích prvků nabídek, které je možné použít v Uživatelské rozhraní Design. Další informace najdete v části Ovládací prvky nabídek v pokynech společnosti Apple pro OS X pro lidské rozhraní.
Poskytování dat ovládacího prvku nabídky
Ovládací prvky nabídek dostupné pro macOS je možné nastavit k naplnění rozevíracího seznamu buď z interního seznamu (který je možné předem definovat v Interface Builder nebo naplnit kódem), nebo poskytnutím vlastního vlastního externího zdroje dat.
Práce s interními daty
Kromě definování položek v Interface Builder poskytují ovládací prvky nabídky (například ) úplnou sadu metod, které umožňují přidat, upravit nebo odstranit položky z interního seznamu, který NSComboBox udržují:
Add– Přidá novou položku na konec seznamu.GetItem– Vrátí položku na daném indexu.Insert– Vloží novou položku do seznamu v daném umístění.IndexOf– Vrátí index dané položky.Remove– Odebere danou položku ze seznamu.RemoveAll– Odebere všechny položky ze seznamu.RemoveAt– Odebere položku v daném indexu.Count– Vrátí počet položek v seznamu.
Důležité
Pokud používáte externí zdroj dat ( ), vyvolá volání kterékoli z výše uvedených metod UsesDataSource = true výjimku.
Práce s externím zdrojem dat
Místo použití integrovaných interních dat k poskytování řádků pro ovládací prvek nabídky můžete volitelně použít externí zdroj dat a pro položky (například databázi SQLite) zadat vlastní zálohovací úložiště.
Pokud chcete pracovat s externím zdrojem dat, vytvoříte instanci zdroje dat ovládacího prvku nabídky (například) a přepíšete několik metod pro poskytnutí NSComboBoxDataSource potřebných dat:
ItemCount– Vrátí počet položek v seznamu.ObjectValueForItem– Vrátí hodnotu položky pro daný index.IndexOfItem– Vrátí index pro zadanou hodnotu položky.CompletedString– Vrátí první odpovídající hodnotu položky pro částečně typovou hodnotu položky. Tato metoda se volá jenom v případě, že je povolené automatické dokončování (Completes = true).
Další podrobnosti najdete v části Databáze a pole se seznamem v dokumentu Práce s databázemi.
Úprava vzhledu seznamu
Pro úpravu vzhledu ovládacího prvku nabídky jsou k dispozici následující metody:
HasVerticalScroller– Pokudtrueje , zobrazí ovládací prvek svislý posuvník.VisibleItems– Upraví počet položek zobrazených při otevření ovládacího prvku. Výchozí hodnota je pět (5).IntercellSpacing– Upravte velikost místa kolem dané položky tak, že zadáte , kde určuje levý a pravý okraj a určuje mezeru před aNSSizeWidthzaHeightpoložkou.ItemHeight– Určuje výšku každé položky v seznamu.
Pro Drop-Down typů NSPopupButtons , první položka nabídky obsahuje název ovládacího prvku. Příklad:
Pokud chcete změnit název, vystavte tuto položku jako výstup a použijte kód jako v následujícím příkladu:
DropDownSelected.Title = "Item 1";
Manipulace s vybranými položkami
Následující metody a vlastnosti umožňují manipulaci s vybranými položkami v seznamu ovládacího prvku nabídky:
SelectItem– Vybere položku v daném indexu.Select– Vyberte hodnotu dané položky.DeselectItem– Zruší výběr položky v daném indexu.SelectedIndex– Vrátí index aktuálně vybrané položky.SelectedValue– Vrátí hodnotu aktuálně vybrané položky.
Pomocí můžete položku prezentovat v daném indexu v horní části seznamu a posunout se k seznamu, dokud položka v daném ScrollItemAtIndexToTopScrollItemAtIndexToVisible indexu není viditelná.
Reakce na události
Ovládací prvky nabídky poskytují následující události, které reagují na interakci uživatele:
SelectionChanged– Volá se, když uživatel vybere hodnotu ze seznamu.SelectionIsChanging– Volá se předtím, než se nová položka vybraná uživatelem stane aktivním výběrem.WillPopup- Volá se před zobrazením rozevíracího seznamu položek.WillDismiss- Volá se před zavřením rozevíracího seznamu položek.
U ovládacích prvků zahrnují všechny stejné události jako , například událost, která se volá vždy, když uživatel upraví hodnotu textu v NSComboBoxNSTextField poli se Changed seznamem.
Volitelně můžete reagovat na výběr interních položek nabídky dat definovaných v souboru Interface Builder připojením položky k akci Interface Builder pomocí následujícího kódu reagovat na akci aktivované uživatelem:
partial void ItemOne (Foundation.NSObject sender) {
DropDownSelected.Title = "Item 1";
FeedbackLabel.StringValue = "Item One Selected";
}
Další informace o práci s nabídkami a ovládacími prvky nabídek najdete v naší dokumentaci k nabídkám a automaticky otevíra Pull-Down seznamem.
Práce s ovládacími prvky výběru
AppKit poskytuje několik typů ovládacích prvků výběru, které je možné použít v Uživatelské rozhraní Design. Další informace najdete v části Ovládací prvky výběru v pokynech pro lidské rozhraní OS X společnostiApple.
Existují dva způsoby, jak sledovat, kdy ovládací prvek výběru obsahuje interakci uživatele, a to tak, že ho vystavíte jako akci. Například:
partial void SegmentButtonPressed (Foundation.NSObject sender) {
FeedbackLabel.StringValue = string.Format("Button {0} Pressed",SegmentButtons.SelectedSegment);
}
Nebo připojením delegáta k události. Například:
TickedSlider.Activated += (sender, e) => {
FeedbackLabel.StringValue = string.Format("Stepper Value: {0:###}",TickedSlider.IntValue);
};
Pokud chcete nastavit nebo číst hodnotu ovládacího prvku výběru, použijte IntValue vlastnost . Například:
FeedbackLabel.StringValue = string.Format("Stepper Value: {0:###}",TickedSlider.IntValue);
Speciální ovládací prvky (například Color Well a Image Well) mají specifické vlastnosti pro jejich typy hodnot. Příklad:
ColorWell.Color = NSColor.Red;
ImageWell.Image = NSImage.ImageNamed ("tag.png");
má NSDatePicker následující vlastnosti pro práci přímo s datem a časem:
- DateValue – aktuální hodnota data a času jako .
- Místní – umístění uživatele jako .
- TimeInterval – hodnota času jako .
- TimeZone – časové pásmo uživatele jako .
Práce s ovládacími prvky indikátoru
AppKit poskytuje několik typů ovládacích prvků indikátoru, které je možné použít v Uživatelské rozhraní Design. Další informace najdete v části Ovládací prvky indikátorů v pokynech pro lidské rozhraní OS X společnostiApple.
Existují dva způsoby, jak sledovat, kdy ovládací prvek indikátoru obsahuje interakci uživatele, a to buď tak, že ho vystavíte jako akci nebo výstup a připojíte k události delegáta. Například:
LevelIndicator.Activated += (sender, e) => {
FeedbackLabel.StringValue = string.Format("Level: {0:###}",LevelIndicator.DoubleValue);
};
Ke čtení nebo nastavení hodnoty ovládacího prvku indikátoru použijte DoubleValue vlastnost . Například:
FeedbackLabel.StringValue = string.Format("Rating: {0:###}",Rating.DoubleValue);
Při zobrazení by se měly animovat neurčité a asynchronní indikátory průběhu. Pomocí metody StartAnimation spusťte animaci, když se zobrazí. Například:
Indeterminate.StartAnimation (this);
AsyncProgress.StartAnimation (this);
Volání metody StopAnimation zastaví animaci.
Práce s ovládacími prvky textu
AppKit poskytuje několik typů textových ovládacích prvků, které je možné použít v Uživatelské rozhraní Design. Další informace najdete v části Textové ovládací prvky v pokynech pro lidské rozhraní OS X společnostiApple.
U textových polí ( ) je možné ke sledování interakce uživatelů NSTextField použít následující události:
- Změněno – je aktivováno pokaždé, když uživatel změní hodnotu pole. Například pro každý typ znaku.
- EditingBe the – funkce se aktivuje, když uživatel vybere pole pro úpravy.
- EditingEnded – když uživatel stiskne klávesu Enter v poli nebo opustí pole.
Ke čtení nebo nastavení hodnoty pole použijte StringValue vlastnost . Například:
FeedbackLabel.StringValue = string.Format("User ID: {0}",UserField.StringValue);
Pro pole, která zobrazují nebo upravovat číselné hodnoty, můžete použít IntValue vlastnost . Například:
FeedbackLabel.StringValue = string.Format("Number: {0}",NumberField.IntValue);
Poskytuje NSTextView plnohodnotnou oblast pro úpravy a zobrazení textu s integrovaným formátováním. Podobně NSTextField jako u použijte StringValue vlastnost ke čtení nebo nastavení hodnoty oblasti.
Příklad složitého příkladu práce se zobrazeními textu v aplikaci Xamarin.Mac najdete v ukázkové aplikaci SourceWriter. SourceWriter je jednoduchý editor zdrojového kódu, který poskytuje podporu pro dokončování kódu a jednoduché zvýraznění syntaxe.
Kód SourceWriter byl plně okomentován a (pokud je k dispozici) jsou k dispozici odkazy na klíčové technologie nebo metody na relevantní informace v dokumentaci příručky Xamarin.Mac.
Práce se zobrazeními obsahu
AppKit poskytuje několik typů zobrazení obsahu, které je možné použít ve vašem Uživatelské rozhraní Design. Další informace najdete v části Zobrazení obsahu v pokynech pro lidské rozhraní OS X společnostiApple.
Překryvné okna
Překryvný prvek je přechodný prvek uživatelského rozhraní, který poskytuje funkce, které přímo souvisejí s konkrétním ovládacím prvkem nebo oblastí na obrazovce. Nad oknem, které obsahuje ovládací prvek nebo oblast, se kterou souvisí, se překryvné desetinné čárky a jeho ohraničení obsahuje šipku, která označuje bod, ze kterého se objevil.
Pokud chcete vytvořit překryvné okno, proveďte následující:
Poklikáním v okně, do kterého chcete přidat překryvné okno,
.storyboard.storyboardPřetáhněte kontroler zobrazení z inspektoru knihovny do editoru rozhraní:
Definujte velikost a rozložení vlastního zobrazení:
Klikněte na ovládací prvek a přetáhněte ho ze zdroje automaticky otevíraného okna na kontroler zobrazení:
V místní nabídce vyberte Překryvné okno:
Uložte změny a vraťte se do Visual Studio pro Mac synchronizaci s Xcode.
Zobrazení karet
Zobrazení karet se skládá ze seznamu karet (který vypadá podobně jako segmentovaný ovládací prvek) v kombinaci se sadami zobrazení, která se nazývají podokna. Když uživatel vybere novou kartu, zobrazí se podokno, které je k němu připojené. Každé podokno obsahuje vlastní sadu ovládacích prvků.
Při práci se zobrazením tabulátoru v Interface Builder Xcode nastavte počet karet pomocí inspektoru atributů:
Výběrem jednotlivých karet v hierarchii rozhraní nastavte její Název a přidejte prvky uživatelského rozhraní do jeho podokna:
Ovládací prvky AppKit pro datové vazby
Pomocí technik Key-Value kódování a datových vazeb v aplikaci Xamarin.Mac můžete výrazně snížit množství kódu, který musíte napsat a udržovat, abyste mohli naplnit prvky uživatelského rozhraní a pracovat s těmito prvky. Výhodou je také další oddělení zálohovací dat ( datovýmodel) od front-endového Uživatelské rozhraní (model-zobrazení-kontroler),což vede k jednodušší údržbě a flexibilnějšímu návrhu aplikací.
Key-Value Code (KVC) je mechanismus pro nepřímou přístup k vlastnostem objektu pomocí klíčů (speciálně formátovaných řetězců) k identifikaci vlastností místo přístupu k nim prostřednictvím proměnných instance nebo metod přistupující metody ( get/set ). Implementací přistupovacích Key-Value, které dodržují předpisy, v aplikaci Xamarin.Mac získáte přístup k dalším funkcím macOS, jako jsou Key-Value Observing (KVO), datové vazby, základní data, vazby Cocoa a skriptovatelnost.
Další informace najdete v části Jednoduchá datová vazba naší dokumentace k datovým vazbách a Key-Value kódování.
Souhrn
Tento článek podrobně popisuje práci se standardními ovládacími prvky AppKit, jako jsou tlačítka, popisky, textová pole, zaškrtávací políčka a segmentované ovládací prvky v aplikaci Xamarin.Mac. Pokryli jsme jejich přidání do návrhu Uživatelské rozhraní v Xcode Interface Builder, jejich vystavení kódu prostřednictvím výstupů a akcí a práci s ovládacími prvky AppKit v C# Code.




























