Standardní ovládací prvky v Xamarin.Mac
Tento článek popisuje práci se standardními ovládacími prvky AppKitu, 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 Tvůrcem rozhraní a interakci s nimi v kódu.
Při práci s jazykem C# a .NET v aplikaci Xamarin.Mac máte přístup ke stejným ovládacím prvkům AppKitu, ve Objective-C kterých vývojář pracuje, a Xcode . Vzhledem k tomu, že se Xamarin.Mac integruje přímo s Xcode, můžete pomocí Tvůrce rozhraní Xcode vytvářet a udržovat ovládací prvky Appkitu (nebo je volitelně vytvářet přímo v kódu jazyka C#).
Ovládací prvky AppKitu jsou prvky uživatelského rozhraní, které slouží k vytvoření uživatelského rozhraní 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, a způsobují okamžité akce nebo viditelné výsledky, když s nimi uživatel manipuluje.
V tomto článku se budeme zabývat základy práce s ovládacími prvky AppKit v aplikaci Xamarin.Mac. Důrazně doporučujeme, abyste si nejprve prošli článek Hello, Mac , konkrétně úvod do Xcode a Tvůrce rozhraní a výstupy a akce , protože se zabývá klíčovými koncepty a technikami, které budeme používat v tomto článku.
Možná se také budete chtít podívat na oddíly v dokumentu Interní dokumenty Xamarin.Mac pro zveřejnění tříd a metodObjective-Cjazyka C#. Vysvětluje také, které Register
příkazy a Export
které se používají k připojení tříd jazyka C# k Objective-C objektům a prvkům uživatelského rozhraní.
Úvod do ovládacích prvků a zobrazení
macOS (dříve označovaný jako Mac OS X) poskytuje standardní sadu ovládacích prvků uživatelského rozhraní prostřednictvím rozhraní AppKit Framework. Skládají se z prvků, jako jsou tlačítka, popisky, textová pole, zaškrtávací políčka a segmentované ovládací prvky, a způsobují okamžité akce nebo viditelné výsledky, když s nimi uživatel manipuluje.
Všechny ovládací prvky AppKit mají standardní integrovaný vzhled, který bude vhodný pro většinu použití, některé určují alternativní vzhled pro použití v oblasti rámečku okna nebo v kontextu efektu vibrování , například v oblasti bočního panelu nebo ve widgetu Centrum oznámení.
Apple navrhuje následující pokyny při práci s ovládacími prvky AppKit:
- Vyhněte se kombinování velikostí ovládacích prvků ve stejném zobrazení.
- Obecně se vyhněte vertikální změně velikosti ovládacích prvků.
- V ovládacím prvku použijte systémové písmo a správnou velikost textu.
- Použijte správné mezery mezi ovládacími prvky.
Další informace najdete v části O ovládacích prvcích a zobrazeních společnosti Apple v pokynech pro lidské rozhraní OS X.
Použití ovládacích prvků v rámečku okna
K dispozici je podmnožina ovládacích prvků AppKit, které obsahují styl zobrazení, který umožňuje zahrnout je do oblasti rámečku okna. Příklad najdete na panelu nástrojů aplikace Pošta:
- Tlačítko s kruhovou texturou - A
NSButton
se stylemNSTexturedRoundedBezelStyle
. - Texturovaný zaoblený segmentovaný ovládací prvek - A
NSSegmentedControl
s stylemNSSegmentStyleTexturedRounded
. - Texturovaný zaoblený segmentovaný ovládací prvek - A
NSSegmentedControl
s stylemNSSegmentStyleSeparated
. - Kruhová texturovaná místní nabídka - A
NSPopUpButton
s stylemNSTexturedRoundedBezelStyle
. - Kruhová texturovaná rozevírací nabídka - A
NSPopUpButton
s stylemNSTexturedRoundedBezelStyle
. - Panel hledání - A
NSSearchField
.
Apple navrhuje následující pokyny při práci s ovládacími prvky AppKit v rámečku okna:
- Nepoužívejte styly ovládacích prvků specifické pro rámeček okna v textu okna.
- Nepoužívejte v rámečku okna ovládací prvky ani styly textu okna.
Další informace najdete v části O ovládacích prvcích a zobrazeních společnosti Apple v pokynech pro lidské rozhraní OS X.
Vytvoření uživatelského rozhraní v Tvůrci rozhraní
Když vytvoříte novou aplikaci Xamarin.Mac Cocoa, ve výchozím nastavení se zobrazí standardní prázdné okno. Tato okna jsou definována .storyboard
v souboru, který je automaticky zahrnutý v projektu. Pokud chcete upravit návrh oken, poklikejte v Průzkumník řešení na Main.storyboard
soubor:
Otevře se návrh okna v Tvůrci rozhraní Xcode:
Chcete-li vytvořit uživatelské rozhraní, přetáhnete prvky uživatelského rozhraní (ovládací prvky AppKit) z inspektoru knihovny do editoru rozhraní v Tvůrci rozhraní. V následujícím příkladu byl ovládací prvek Svislé rozdělené zobrazení drogou z Inspektoru knihovny a umístěn do okna v Editoru rozhraní:
Další informace o vytváření uživatelského rozhraní v Tvůrci rozhraní naleznete v naší dokumentaci Úvod do Xcode a Interface Builder .
Určení velikosti a umístění
Jakmile je ovládací prvek součástí uživatelského rozhraní, pomocí editoru omezení nastavte jeho umístění a velikost zadáním hodnot ručně a určete, jak se ovládací prvek automaticky umístí a velikost při změně velikosti nadřazeného okna nebo zobrazení:
Pomocí červených I-Paprsků kolem vnější části pole Autoresizing přilepte ovládací prvek na dané místo (x,y). Příklad:
Určuje, že vybraný ovládací prvek (v Editoru zobrazení hierarchie a rozhraní) se zablokuje na pravé horní a pravé místo okna nebo zobrazení při změně velikosti nebo přesunutí.
Další prvky vlastností ovládacího prvku editoru, jako je Výška a Šířka:
Zarovnání prvků s omezeními můžete řídit také pomocí Editoru zarovnání:
Důležité
Na rozdíl od iOSu, kde (0,0) je levý horní roh obrazovky, v macOS (0,0) je levý dolní roh. Důvodem je to, že macOS používá matematický souřadnicový systém s číselnými hodnotami, které se zvětšují směrem nahoru a doprava. Při umísťování ovládacích prvků AppKit do uživatelského rozhraní je potřeba vzít v úvahu.
Nastavení vlastní třídy
Při práci s ovládacími prvky AppKitu potřebujete podtřídu a existující ovládací prvek a vytvořit vlastní verzi této třídy. Například definování vlastní verze 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
}
}
[Register("SourceListView")]
Kde instrukce zveřejňuje SourceListView
tříduObjective-C, aby bylo možné ji použít v Tvůrci rozhraní. Další informace najdete v části "Zveřejnění tříd a metod jazyka C# v Objective-C dokumentu Internals Xamarin.Mac", vysvětluje a Register
Export
příkazy používané k připojení tříd jazyka C# k Objective-C objektům a prvkům 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 příkladu níže zdrojový seznam), přepnout na Kontrolu identit a nastavit vlastní třídu na název, který jste odhalili Objective-C (příklad SourceListView
):
Zveřejnění výstupů a akcí
Než bude ovládací prvek AppKitu přístupný v kódu jazyka C#, musí být vystaven jako výstup nebo akce. Uděláte to tak, že vyberete daný ovládací prvek v hierarchii rozhraní nebo editoru rozhraní a přepnete do zobrazení Pomocníka (ujistěte se, že máte .h
vybrané okno pro úpravy):
Přetažením ovládacího prvku Control z ovládacího prvku AppKit do souboru give .h
zahájíte vytváření výstupu nebo akce:
Vyberte typ expozice, který chcete vytvořit, a dejte výstupu nebo akci název:
Další informace o práci s výstupy a akcemi naleznete v části Výstupy a akce v naší dokumentaci Úvod do Xcode a Interface Builderu.
Synchronizace změn pomocí Xcode
Když přepnete zpět na Visual Studio pro Mac z Xcode, všechny změny provedené v Xcode se automaticky synchronizují s projektem Xamarin.Mac.
Pokud vyberete SplitViewController.designer.cs
v Průzkumník řešení uvidíte, jak byla vaše zásuvka a akce připojeny v našem kódu jazyka C#:
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; }
Zarovná se 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
souboru a potom tyto změny automaticky synchronizuje v příslušném .designer.cs
souboru, aby je zpřístupnil vaší aplikaci. Můžete si také všimnout, že SplitViewController.designer.cs
jde o částečnou třídu, takže Visual Studio pro Mac nemusí upravovatSplitViewController.cs
, což by přepsalo všechny změny, které jsme provedli ve třídě.
Obvykle nebudete muset otevřít SplitViewController.designer.cs
sami sebe, to bylo prezentováno pouze pro vzdělávací účely.
Důležité
Ve většině situací Visual Studio pro Mac automaticky uvidí všechny změny provedené v Xcode a synchronizují je s projektem Xamarin.Mac. V vypnutém výskytu, ke kterému synchronizace neproběhla automaticky, přepněte zpět na Xcode a vraťte se zpět na Visual Studio pro Mac znovu. Tím se obvykle spustí synchronizační cyklus.
Práce s tlačítky
AppKit 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 pokynů apple pro lidské rozhraní OS X.
Pokud je tlačítko vystaveno prostřednictvím výstupu, bude na něj reagovat následující kód:
ButtonOutlet.Activated += (sender, e) => {
FeedbackLabel.StringValue = "Button Outlet Pressed";
};
U tlačítek, která byla vystavena prostřednictvím akcí, public partial
se automaticky vytvoří metoda s názvem, který jste zvolili v Xcode. Chcete-li odpovědět na akci, dokončete částečnou metodu ve třídě, na které byla akce definována. Pří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 Zapnuto a Vypnuto) lze stav zkontrolovat nebo nastavit pomocí State
vlastnosti proti výčtu NSCellStateValue
. Příklad:
DisclosureButton.Activated += (sender, e) => {
LorumIpsum.Hidden = (DisclosureButton.State == NSCellStateValue.On);
};
Kde NSCellStateValue
může být:
- Zapnuto – Tlačítko je stisknuto nebo je vybrán ovládací prvek (například zaškrtávací políčko se změnami).
- Vypnuto – tlačítko není nabízeno nebo není vybrán ovládací prvek.
- Smíšená - směs stavů Zapnuto a Vypnuto .
Označení tlačítka jako výchozího a nastavení ekvivalentu klíče
U všech tlačítek, 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 na klávesnici stiskne klávesu Return/Enter . 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 v Tvůrci rozhraní Xcode. Potom v inspektoru atributů vyberte pole Ekvivalent klíče a stiskněte klávesu Return/Enter:
Stejně tak můžete přiřadit libovolnou posloupnost kláves, která se dá 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 je klávesová a prioritní, pokud uživatel stiskne Command-C, aktivuje se akce tlačítka (jako kdyby uživatel klikl na toto 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é lze použít v návrhu uživatelského rozhraní. Další informace najdete v části Tlačítka pokynů apple pro lidské rozhraní OS X.
Zaškrtávací políčka a přepínače (vystavená prostřednictvím výstupů) mají stav (například Zapnuto a Vypnuto), stav lze zaškrtnout nebo nastavit s State
vlastností proti výčtu NSCellStateValue
. Příklad:
AdjustTime.Activated += (sender, e) => {
FeedbackLabel.StringValue = string.Format("Adjust Time: {0}",AdjustTime.State == NSCellStateValue.On);
};
Kde NSCellStateValue
může být:
- Zapnuto – Tlačítko je stisknuto nebo je vybrán ovládací prvek (například zaškrtávací políčko se změnami).
- Vypnuto – tlačítko není nabízeno nebo není vybrán ovládací prvek.
- Smíšená - směs stavů Zapnuto a Vypnuto .
Pokud chcete vybrat tlačítko ve skupině přepínačů, vystavte přepínač, který chcete vybrat jako zásuvku a nastavit jeho State
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čů, aby fungovala jako skupina a automaticky zpracovávala vybraný stav, vytvořte novou akci a připojte k ní každé tlačítko ve skupině:
V dalším kroku přiřaďte každému přepínači v inspektoru atributů jedinečnou hodnotuTag
:
Uložte změny a vraťte se do Visual Studio pro Mac, přidejte kód pro zpracování akce, ke které jsou připojena všechna přepínače:
partial void NumberChanged(Foundation.NSObject sender)
{
var check = sender as NSButton;
Console.WriteLine("Changed to {0}", check.Tag);
}
Pomocí vlastnosti můžete Tag
zjistit, které přepínač byl vybrán.
Práce s ovládacími prvky nabídky
AppKit poskytuje několik typů ovládacích prvků nabídek, které lze použít v návrhu uživatelského rozhraní. Další informace najdete v části Ovládací prvky nabídek pokynů apple pro lidské rozhraní OS X.
Poskytování dat ovládacích prvků nabídky
Ovládací prvky nabídky dostupné pro macOS lze nastavit tak, aby se rozevírací seznam naplnil buď z interního seznamu (který lze předem definovat v Tvůrci rozhraní nebo naplnit kódem), nebo poskytnutím vlastního externího zdroje dat.
Práce s interními daty
Kromě definování položek v Interface Builderu poskytují ovládací prvky nabídky (například NSComboBox
) úplnou sadu metod, které umožňují přidat, upravit nebo odstranit položky z interního seznamu, který udržují:
Add
- Přidá novou položku na konec seznamu.GetItem
– Vrátí položku v 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 (UsesDataSource = true
), vyvolání některé z výše uvedených metod vyvolá výjimku.
Práce s externím zdrojem dat
Místo použití předdefinovaných interních dat k poskytnutí řádků pro ovládací prvek nabídky můžete volitelně použít externí zdroj dat a poskytnout vlastní záložní úložiště pro položky (například databázi SQLite).
Pokud chcete pracovat s externím zdrojem dat, vytvoříte instanci zdroje dat ovládacího prvku nabídky (NSComboBoxDataSource
například) a přepíšete několik metod pro poskytnutí 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 hodnotu dané položky.CompletedString
– Vrátí první odpovídající hodnotu položky pro částečně zadaná hodnota položky. Tato metoda se volá pouze 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
K dispozici jsou následující metody pro úpravu vzhledu ovládacího prvku nabídky:
HasVerticalScroller
- Pokudtrue
, ovládací prvek zobrazí svislý posuvník.VisibleItems
- Upravte 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 zadánímNSSize
místa, kdeWidth
určuje levý a pravý okraj aHeight
určuje mezeru před a za položkou.ItemHeight
– Určuje výšku každé položky v seznamu.
V případě rozevíracích NSPopupButtons
typů obsahuje první položka nabídky název ovládacího prvku. Příklad:
Pokud chcete změnit název, zveřejníte tuto položku jako výstup a použijete kód podobný tomuto:
DropDownSelected.Title = "Item 1";
Manipulace s vybranými položkami
Následující metody a vlastnosti umožňují manipulovat s vybranými položkami v seznamu ovládacích prvků nabídky:
SelectItem
- Vybere položku v daném indexu.Select
- Vyberte danou hodnotu 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.
ScrollItemAtIndexToTop
Umožňuje prezentovat položku v daném indexu v horní části seznamu a ScrollItemAtIndexToVisible
v seznamu se posouvat tak, aby se položka v daném indexu zobrazovala.
Reakce na události
Ovládací prvky nabídky poskytují následující události pro reakci na interakci uživatele:
SelectionChanged
– Volá se, když uživatel vybral hodnotu ze seznamu.SelectionIsChanging
- Volá se před tí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ím seznamem položek.
U NSComboBox
ovládacích prvků zahrnují všechny stejné události, jako NSTextField
Changed
je událost, která se volá pokaždé, když uživatel upraví hodnotu textu v poli se seznamem.
Volitelně můžete odpovědět na položky nabídky Interní data definované v Tvůrci rozhraní, které jsou vybrány, připojením položky k akci a použitím kódu, jako je následující, aby reagoval 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 dokumentaci k nabídkám a místním tlačítkům a rozevíracím seznamům.
Práce s ovládacími prvky výběru
AppKit poskytuje několik typů ovládacích prvků výběru, které lze použít v návrhu uživatelského rozhraní. Další informace najdete v části Ovládací prvky výběru pokynů apple pro lidské rozhraní OS X.
Existují dva způsoby, jak sledovat, kdy ovládací prvek výběru má interakci uživatele tím, že ho zobrazí jako akci. Příklad:
partial void SegmentButtonPressed (Foundation.NSObject sender) {
FeedbackLabel.StringValue = string.Format("Button {0} Pressed",SegmentButtons.SelectedSegment);
}
Nebo připojením delegáta Activated
k události. Příklad:
TickedSlider.Activated += (sender, e) => {
FeedbackLabel.StringValue = string.Format("Stepper Value: {0:###}",TickedSlider.IntValue);
};
Chcete-li nastavit nebo přečíst hodnotu ovládacího prvku výběru, použijte IntValue
vlastnost. Příklad:
FeedbackLabel.StringValue = string.Format("Stepper Value: {0:###}",TickedSlider.IntValue);
Speciální ovládací prvky (například Color Well a Image Well) mají pro jejich typy hodnot specifické vlastnosti. 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
NSDate
hodnota . - Místní – umístění uživatele jako
NSLocal
. - TimeInterval – hodnota času jako
Double
. - Časové pásmo – časové pásmo uživatele jako
NSTimeZone
.
Práce s ovládacími prvky indikátoru
AppKit poskytuje několik typů ovládacích prvků indikátorů, které lze použít v návrhu uživatelského rozhraní. Další informace najdete v části Ovládací prvky indikátorů pokynů apple pro lidské rozhraní OS X.
Existují dva způsoby, jak sledovat, kdy má ovládací prvek indikátoru interakci uživatele, buď jeho zveřejněním jako akce, nebo výstupem a připojením delegáta Activated
k události. Příklad:
LevelIndicator.Activated += (sender, e) => {
FeedbackLabel.StringValue = string.Format("Level: {0:###}",LevelIndicator.DoubleValue);
};
Chcete-li číst nebo nastavit hodnotu ovládacího prvku indikátoru, použijte DoubleValue
vlastnost. Příklad:
FeedbackLabel.StringValue = string.Format("Rating: {0:###}",Rating.DoubleValue);
Při zobrazení by měly být animované indikátory neurčitého a asynchronního průběhu. StartAnimation
Pomocí metody spusťte animaci, když se zobrazí. Příklad:
Indeterminate.StartAnimation (this);
AsyncProgress.StartAnimation (this);
Volání metody StopAnimation
zastaví animaci.
Práce s textovými ovládacími prvky
AppKit poskytuje několik typů textových ovládacích prvků, které lze použít v návrhu uživatelského rozhraní. Další informace najdete v části Ovládací prvky textu v Pokynech pro lidské rozhraní OS X společnosti Apple.
U textových polí (NSTextField
) lze ke sledování interakce uživatelů použít následující události:
- Změněno – aktivuje se pokaždé, když uživatel změní hodnotu pole. Například u každého typu znaku.
- EditingBegan – aktivuje se, když uživatel vybere pole pro úpravy.
- EditingEnded – Když uživatel stiskne klávesu Enter v poli nebo pole opustí.
StringValue
Pomocí vlastnosti můžete číst nebo nastavit hodnotu pole. Příklad:
FeedbackLabel.StringValue = string.Format("User ID: {0}",UserField.StringValue);
U polí, která zobrazují nebo upravují číselné hodnoty, můžete použít IntValue
vlastnost. Pří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. NSTextField
Podobně jako v případě , použijte StringValue
vlastnost ke čtení nebo nastavení hodnoty oblasti.
Práce se zobrazeními obsahu
AppKit poskytuje několik typů zobrazení obsahu, které lze použít v návrhu uživatelského rozhraní. Další informace najdete v části Zobrazení obsahu pokynů apple pro lidské rozhraní OS X.
Překryvná okna
Překryvné okno je přechodný prvek uživatelského rozhraní, který poskytuje funkce, které přímo souvisí s konkrétním ovládacím prvkem nebo oblastí na obrazovce. Překryvné okno nad oknem, které obsahuje ovládací prvek nebo oblast, se kterou souvisí, a jeho ohraničení obsahuje šipku označující bod, ze kterého se objevil.
Pokud chcete vytvořit překryvné okno, postupujte takto:
.storyboard
Otevřete soubor okna, do kterého chcete přidat překryvné okno, poklikáním na něj v Průzkumník řešeníPřetáhněte kontroler zobrazení z nástroje Library Inspector do editoru rozhraní:
Definujte velikost a rozložení vlastního zobrazení:
Stisknutou klávesou Control a přetažením ze zdroje překryvného okna na řadič zobrazení:
V místní nabídce vyberte překryvné okno :
Uložte změny a vraťte se do Visual Studio pro Mac pro synchronizaci s Xcode.
Zobrazení karet
Zobrazení karet se skládá ze seznamu karet (který vypadá podobně jako segmentovaný ovládací prvek) v kombinaci se sadou 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 karet v Tvůrci rozhraní Xcode nastavte počet karet pomocí inspektoru atributů:
Vyberte každou kartu v hierarchii rozhraní a nastavte její název a přidejte prvky uživatelského rozhraní do jeho podokna:
Ovládací prvky AppKitu pro datové vazby
Pomocí technik kódování klíč-hodnota a datové vazby v aplikaci Xamarin.Mac můžete výrazně snížit množství kódu, který musíte napsat a udržovat pro naplnění a práci s prvky uživatelského rozhraní. Výhodou je také další oddělení backingových dat (datový model) od front-endového uživatelského rozhraní (Model-View-Controller), což usnadňuje údržbu a flexibilnější návrh aplikace.
Kódování klíč-hodnota (KVC) je mechanismus pro přístup k vlastnostem objektu nepřímo pomocí klíčů (speciálně formátovaných řetězců) k identifikaci vlastností místo přístupu prostřednictvím proměnných instancí nebo metod přístupového objektu (get/set
). Implementací přístupových objektů kompatibilních s kódováním klíč-hodnota v aplikaci Xamarin.Mac získáte přístup k dalším funkcím systému macOS, jako je KVO (Key-Value Observing), Datová vazba, Základní data, vazby Cocoa a skriptovatelnost.
Další informace najdete v části Jednoduchá datová vazba v dokumentaci k kódování datových vazeb a klíč-hodnota.
Shrnutí
Tento článek se podrobně podíval na práci se standardními ovládacími prvky AppKitu, jako jsou tlačítka, popisky, textová pole, zaškrtávací políčka a segmentované ovládací prvky v aplikaci Xamarin.Mac. Zahrnovalo jejich přidání do návrhu uživatelského rozhraní v Tvůrci rozhraní Xcode, který je vystavuje kódu prostřednictvím výstupů a akcí a práce s ovládacími prvky AppKit v kódu jazyka C#.