Výstrahy v Xamarin. Mac
Tento článek popisuje práci s výstrahami v aplikaci Xamarin. Mac. Popisuje vytváření a zobrazování výstrah z kódu jazyka C# a reakce na interakce uživatele.
Při práci s C# a .NET v aplikaci Xamarin. Mac máte přístup ke stejným výstrahám, které vývojář pracuje v Objective-C a Objective-C .
Výstraha je speciální typ dialogového okna, který se zobrazí, když dojde k závažnému problému (například chyba) nebo jako varování (například při přípravě odstranění souboru). Vzhledem k tomu, že výstraha je dialog, vyžaduje také odpověď uživatele, aby mohla být zavřena.
V tomto článku se seznámíte se základy práce s výstrahami v aplikaci Xamarin. Mac.
Úvod k výstrahám
Výstraha je speciální typ dialogového okna, který se zobrazí, když dojde k závažnému problému (například chyba) nebo jako varování (například při přípravě odstranění souboru). Vzhledem k tomu, že výstrahy přerušují uživatele, protože musí být zavřeny, než uživatel bude moci pokračovat s úkolem, vyhněte se zobrazování výstrahy, pokud není nezbytně nutné.
Společnost Apple navrhne následující pokyny:
- Nepoužívejte upozornění pouze k poskytnutí informací o uživateli.
- Nezobrazovat upozornění pro běžné akce, které nelze vrátit zpět. I v případě, že tato situace může způsobit ztrátu dat.
- Pokud je situace důvěryhodného výstrahy, vyhněte se použití jakéhokoli jiného prvku nebo metody uživatelského rozhraní k jeho zobrazení.
- Ikona upozornění by měla být použita zřídka.
- Popište situaci výstrah jasně a stručně ve zprávě upozornění.
- Výchozí název tlačítka by měl odpovídat akci, kterou popisujete ve zprávě s upozorněním.
Další informace najdete v části s výstrahami v tématu základní informace o rozhraních systému Apple OS X .
Anatomie výstrahy
Jak je uvedeno výše, výstrahy by se měly zobrazit uživateli vaší aplikace, když dojde k vážnému problému, nebo jako upozornění na potenciální ztrátu dat (například zavření neuloženého souboru). V Xamarin. Mac se v kódu jazyka C# vytvoří výstraha, například:
var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Critical,
InformativeText = "We need to save the document here...",
MessageText = "Save Document",
};
alert.RunModal ();
Výše uvedený kód zobrazí výstrahu s ikonou aplikace nastavenou na ikonu upozornění, název, zprávu upozornění a jediné tlačítko OK :
Společnost Apple poskytuje několik vlastností, které lze použít k přizpůsobení výstrahy:
- AlertStyle definuje typ výstrahy jako jednu z následujících možností:
- Upozornění – slouží k upozornění uživatele na aktuální nebo hrozící událost, která není kritická. Toto je výchozí styl.
- Informativní – slouží k upozornění uživatele na aktuální nebo hrozící událost. V současné době neexistuje žádný viditelný rozdíl mezi upozorněním a informativní
- Kritická – slouží k upozornění uživatele na závažné důsledky hrozící události (například odstranění souboru). Tento typ výstrahy by měl být používán zřídka.
- MessageText – jedná se o hlavní zprávu nebo název výstrahy a rychle tak definujte situaci pro uživatele.
- InformativeText – jedná se o tělo výstrahy, kde byste měli definovat situaci jasně a prezentovat možnosti funkční pro uživatele.
- Ikona – umožní uživateli zobrazit vlastní ikonu.
- HelpAnchorShowsHelp – povolí, aby se výstraha navázala na HelpBook aplikace a zobrazila se jim nápovědu pro výstrahu.
- Tlačítka – ve výchozím nastavení má výstraha pouze tlačítko OK , ale kolekce tlačítek vám umožní podle potřeby přidat další možnosti.
- ShowsSuppressionButton – Pokud se zobrazí zaškrtávací políčko, pomocí kterého může uživatel potlačit upozornění pro další výskyty události, která ji aktivovala.
- AccessoryView – umožňuje připojit další zobrazení k výstraze a poskytnout tak další informace, například přidat textové pole pro zadávání dat. Pokud nastavíte novou AccessoryView nebo upravíte existující, je nutné volat metodu pro úpravu viditelného rozložení výstrahy.
Zobrazení výstrahy
Existují dva různé způsoby, jak lze zobrazit výstrahu, Free-Floating nebo jako list. Následující kód zobrazí výstrahu jako volné číslo s plovoucí desetinnou čárkou:
var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Informational,
InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
MessageText = "Alert Title",
};
alert.RunModal ();
Pokud je tento kód spuštěný, zobrazí se následující:
Následující kód zobrazí stejnou výstrahu jako list:
var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Informational,
InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
MessageText = "Alert Title",
};
alert.BeginSheet (this);
Pokud je tento kód spuštěný, zobrazí se následující:
Práce s tlačítky výstrahy
Ve výchozím nastavení se zobrazí výstraha pouze tlačítko OK . Nejste však omezeni pouze na to, můžete vytvořit další tlačítka tak, že je připojíte do kolekce tlačítek . Následující kód vytvoří oznámení s plovoucí desetinnou čárkou s tlačítkem OK, Zrušit a možná :
var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Informational,
InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
var result = alert.RunModal ();
První přidané tlačítko bude výchozí tlačítko , které se aktivuje, když uživatel stiskne klávesu ENTER. Vrácená hodnota bude celé číslo, které představuje tlačítko, které uživatel stiskne. V našem případě budou vráceny následující hodnoty:
- OK – 1000.
- Zrušit -1001.
- Možná – 1002.
Pokud kód spustíte, zobrazí se následující:
Zde je kód pro stejnou výstrahu jako list:
var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Informational,
InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
alert.BeginSheetForResponse (this, (result) => {
Console.WriteLine ("Alert Result: {0}", result);
});
Pokud je tento kód spuštěný, zobrazí se následující:
Důležité
Do výstrahy nikdy neměli přidat více než tři tlačítka.
Zobrazení tlačítka pro potlačení
Pokud ShowSuppressButton je vlastnost výstrahy true , zobrazí výstrahu zaškrtávací políčko, pomocí kterého může uživatel potlačit upozornění pro další výskyty události, která ji aktivovala. Následující kód zobrazí bezplatné upozornění plovoucí s tlačítkem potlačit:
var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Informational,
InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
alert.ShowsSuppressionButton = true;
var result = alert.RunModal ();
Console.WriteLine ("Alert Result: {0}, Suppress: {1}", result, alert.SuppressionButton.State == NSCellStateValue.On);
Pokud alert.SuppressionButton.State je hodnota NSCellStateValue.On , uživatel zaškrtli políčko potlačit, jinak ne.
Pokud je kód spuštěn, zobrazí se následující:
Zde je kód pro stejnou výstrahu jako list:
var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Informational,
InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
alert.ShowsSuppressionButton = true;
alert.BeginSheetForResponse (this, (result) => {
Console.WriteLine ("Alert Result: {0}, Suppress: {1}", result, alert.SuppressionButton.State == NSCellStateValue.On);
});
Pokud je tento kód spuštěný, zobrazí se následující:
Přidání vlastního podzobrazení
Výstrahy obsahují AccessoryView vlastnost, která se dá použít k další úpravě výstrahy, a ke vstupu uživatele přidat věci jako AccessoryView . Následující kód vytvoří výstrahu s plovoucí desetinnou čárkou s přidaným textovým polem pro zadání:
var input = new NSTextField (new CGRect (0, 0, 300, 20));
var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Informational,
InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
alert.ShowsSuppressionButton = true;
alert.AccessoryView = input;
alert.Layout ();
var result = alert.RunModal ();
Console.WriteLine ("Alert Result: {0}, Suppress: {1}", result, alert.SuppressionButton.State == NSCellStateValue.On);
Tady jsou uvedené klíčové řádky var input = new NSTextField (new CGRect (0, 0, 300, 20)); , které vytvoří nové var input = new NSTextField (new CGRect (0, 0, 300, 20)); , které bude přidávané upozornění. alert.AccessoryView = input; který připojí alert.AccessoryView = input; k výstraze a volá Layout() metodu, která je požadována pro změnu velikosti výstrahy tak, aby odpovídala novému podzobrazení.
Pokud kód spustíte, zobrazí se následující:
Toto je stejná výstraha jako list:
var input = new NSTextField (new CGRect (0, 0, 300, 20));
var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Informational,
InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
alert.ShowsSuppressionButton = true;
alert.AccessoryView = input;
alert.Layout ();
alert.BeginSheetForResponse (this, (result) => {
Console.WriteLine ("Alert Result: {0}, Suppress: {1}", result, alert.SuppressionButton.State == NSCellStateValue.On);
});
Pokud tento kód spustíte, zobrazí se následující:
Souhrn
V tomto článku se podrobně podíváme na práci s výstrahami v aplikaci Xamarin. Mac. Zjistili jsme různé typy a použití výstrah, jak vytvářet a přizpůsobovat výstrahy a jak pracovat s výstrahami v kódu C#.








