Panely nástrojů v Xamarin.Mac
Tento článek popisuje práci s panely nástrojů v aplikaci Xamarin.Mac. Popisuje vytváření a údržbu panelů nástrojů v Xcode a Interface Builderu, jejich zveřejnění kódu a práci s nimi prostřednictvím kódu programu.
Vývojáři Xamarin.Mac, kteří pracují s Visual Studio pro Mac mají přístup ke stejným ovládacím prvkům uživatelského rozhraní, které jsou dostupné vývojářům macOS pracujícím s Xcode, včetně ovládacího prvku panelu nástrojů. Vzhledem k tomu, že se Xamarin.Mac integruje přímo s Xcode, je možné pomocí Tvůrce rozhraní Xcode vytvářet a udržovat položky panelu nástrojů. Tyto položky panelu nástrojů lze vytvořit také v jazyce C#.
Panely nástrojů v systému macOS jsou přidány do horní části okna a poskytují snadný přístup k příkazům souvisejícím s jeho funkcemi. Panely nástrojů můžou být skryté, zobrazené nebo přizpůsobené uživateli aplikace a můžou položky panelu nástrojů prezentovat různými způsoby.
Tento článek popisuje základy práce s panely nástrojů a položkami panelu nástrojů v aplikaci Xamarin.Mac.
Než budete pokračovat, přečtěte si článek Hello, Mac – konkrétně úvod do Xcode a Tvůrce rozhraní a výstupy a akce – jak popisuje klíčové koncepty a techniky, které se použijí v tomto průvodci.
Podívejte se také na části dokumentu Interní dokumenty Xamarin.Mac o zveřejnění tříd a metod Objective-C jazyka C#. Register
Vysvětluje atributy používané Export
k propojení tříd jazyka C# s Objective-C třídami.
Úvod do panelů nástrojů
Jakékoli okno v aplikaci pro macOS může obsahovat panel nástrojů:
Panely nástrojů poskytují uživatelům aplikace snadný způsob, jak rychle získat přístup k důležitým nebo běžně používaným funkcím. Aplikace pro úpravy dokumentu může například poskytnout položky panelu nástrojů pro nastavení barvy textu, změnu písma nebo tisk aktuálního dokumentu.
Panely nástrojů můžou zobrazit položky třemi způsoby:
Ikona a text
Pouze ikona
Pouze text
Mezi těmito režimy můžete přepínat tak, že kliknete pravým tlačítkem myši na panel nástrojů a v místní nabídce vyberete režim zobrazení:
Pomocí stejné nabídky zobrazte panel nástrojů s menší velikostí:
Nabídka také umožňuje přizpůsobení panelu nástrojů:
Při nastavování panelu nástrojů v Tvůrci rozhraní Xcode může vývojář poskytnout další položky panelu nástrojů, které nejsou součástí výchozí konfigurace. Uživatelé aplikace pak můžou přizpůsobit panel nástrojů a podle potřeby tyto předdefinované položky přidávat a odebírat. Samozřejmě, panel nástrojů lze obnovit do výchozí konfigurace.
Panel nástrojů se automaticky připojí k nabídce Zobrazení , která uživatelům umožňuje ji skrýt, zobrazit a přizpůsobit:
Další podrobnosti najdete v dokumentaci k integrovaným funkcím nabídek.
Kromě toho, pokud je panel nástrojů správně nakonfigurovaný v Tvůrci rozhraní, aplikace automaticky zachová přizpůsobení panelu nástrojů napříč několika spuštěními aplikace.
Další části tohoto průvodce popisují, jak vytvářet a udržovat panely nástrojů pomocí Tvůrce rozhraní Xcode a jak s nimi pracovat v kódu.
Nastavení vlastního hlavního kontroleru oken
Aby aplikace Xamarin.Mac mohla zpřístupnit prvky uživatelského rozhraní kódu v jazyce C#prostřednictvím výstupů a akcí, musí používat vlastní kontroler oken:
Otevřete scénář aplikace v Tvůrci rozhraní Xcode.
Vyberte ovladač okna na návrhové ploše.
Přepněte do inspektoru identity a jako název třídy zadejte "WindowController":
Uložte změny a vraťte se do Visual Studio pro Mac k synchronizaci.
Do projektu se na panelu řešení v Visual Studio pro Mac přidá soubor WindowController.cs:
Znovu otevřete scénář v Tvůrci rozhraní Xcode.
Soubor WindowController.h bude k dispozici pro použití:
Vytváření a údržba panelů nástrojů v Xcode
Panely nástrojů se vytvářejí a udržují pomocí Tvůrce rozhraní Xcode. Pokud chcete do aplikace přidat panel nástrojů, upravte primární scénář aplikace (v tomto případě Main.storyboard) poklikáním na panelu řešení:
V inspektoru knihovny zadejte do vyhledávacího pole "nástroj", aby se snadněji zobrazily všechny dostupné položky panelu nástrojů:
Přetáhněte panel nástrojů do okna v editoru rozhraní. Když je vybraný panel nástrojů, nakonfigurujte jeho chování nastavením vlastností v Inspektoru atributů:
K dispozici jsou následující vlastnosti:
- Zobrazení – určuje, jestli panel nástrojů zobrazuje ikony, text nebo obojí.
- Viditelné při spuštění – pokud je vybráno, je panel nástrojů ve výchozím nastavení viditelný.
- Přizpůsobitelné – pokud je vybráno, můžou uživatelé panel nástrojů upravovat a přizpůsobovat.
- Oddělovač – pokud je vybraná, tenká vodorovná čára odděluje panel nástrojů od obsahu okna.
- Velikost – nastaví velikost panelu nástrojů.
- Automatické ukládání – Pokud je tato možnost vybraná, aplikace zachová změny konfigurace panelu nástrojů uživatele ve všech spuštěních aplikace.
Vyberte možnost Automatické ukládání a ponechte všechny ostatní vlastnosti ve výchozím nastavení.
Po otevření panelu nástrojů v hierarchii rozhraní otevřete dialogové okno přizpůsobení výběrem položky panelu nástrojů:
Pomocí tohoto dialogového okna můžete nastavit vlastnosti pro položky, které jsou již součástí panelu nástrojů, navrhnout výchozí panel nástrojů aplikace a poskytnout uživateli další položky panelu nástrojů, které mají vybrat při přizpůsobení panelu nástrojů. Pokud chcete přidat položky na panel nástrojů, přetáhněte je z nástroje Library Inspector:
Můžete přidat následující položky panelu nástrojů:
Položka panelu nástrojů obrázku – položka panelu nástrojů s vlastním obrázkem jako ikonou
Položka panelu nástrojů flexibilního prostoru – flexibilní prostor použitý k zarovnání následných položek panelu nástrojů. Například jedna nebo více položek panelu nástrojů následovaných položkou flexibilního panelu nástrojů a další položkou panelu nástrojů by připnula poslední položku na pravou stranu panelu nástrojů.
Položka panelu nástrojů Mezera – Pevné místo mezi položkami na panelu nástrojů
Položka panelu nástrojů oddělovače – viditelný oddělovač mezi dvěma nebo více položkami panelu nástrojů pro seskupení
Přizpůsobit položku panelu nástrojů – Umožňuje uživatelům přizpůsobit panel nástrojů.
Vytisknout položku panelu nástrojů – Umožňuje uživatelům vytisknout otevřený dokument.
Zobrazit položku panelu nástrojů Barvy – zobrazí standardní výběr barvy systému:
Zobrazit položku panelu nástrojů písma – zobrazí standardní dialogové okno systémového písma:
Důležité
Jak je vidět později, mnoho standardních ovládacích prvků uživatelského rozhraní Cocoa, jako jsou vyhledávací pole, segmentované ovládací prvky a vodorovné posuvníky, lze také přidat na panel nástrojů.
Přidání položky na panel nástrojů
Pokud chcete přidat položku na panel nástrojů, vyberte panel nástrojů v hierarchii rozhraní a klikněte na některou z jejích položek, což způsobí zobrazení dialogového okna přizpůsobení. Potom přetáhněte novou položku z inspektoru knihovny do oblasti Povolené položky panelu nástrojů:
Pokud chcete mít jistotu, že je nová položka součástí výchozího panelu nástrojů, přetáhněte ji do oblasti Výchozí položky panelu nástrojů:
Pokud chcete změnit pořadí výchozích položek panelu nástrojů, přetáhněte je doleva nebo doprava.
Dále pomocí inspektoru atributů nastavte výchozí vlastnosti položky:
K dispozici jsou následující vlastnosti:
- Název obrázku – obrázek, který se má použít jako ikona položky
- Popisek – text, který se má zobrazit pro položku na panelu nástrojů
- Popisek palety – Text, který se má zobrazit pro položku v oblasti Povolené položky panelu nástrojů
- Značka – volitelný jedinečný identifikátor, který pomáhá identifikovat položku v kódu.
- Identifikátor – Definuje typ položky panelu nástrojů. Vlastní hodnotu lze použít k výběru položky panelu nástrojů v kódu.
- Je možné vybrat – pokud je zaškrtnuté , bude položka fungovat jako tlačítko zapnuto/vypnuto.
Důležité
Přidejte položku do oblasti Povolené položky panelu nástrojů, ale ne do výchozího panelu nástrojů, abyste uživatelům poskytli možnosti přizpůsobení.
Přidání dalších ovládacích prvků uživatelského rozhraní na panel nástrojů
Na panel nástrojů lze přidat také několik prvků uživatelského rozhraní Cocoa, jako jsou vyhledávací pole a segmentované ovládací prvky.
Pokud to chcete vyzkoušet, otevřete panel nástrojů v hierarchii rozhraní a výběrem položky panelu nástrojů otevřete dialogové okno přizpůsobení. Přetáhněte vyhledávací pole z inspektoru knihovny do oblasti Povolené položky panelu nástrojů:
Odsud použijte Tvůrce rozhraní ke konfiguraci vyhledávacího pole a zveřejnění kódu prostřednictvím akce nebo výstupu.
Podpora předdefinovaných položek panelu nástrojů
Několik prvků uživatelského rozhraní Cocoa ve výchozím nastavení komunikuje se standardními položkami panelu nástrojů. Přetáhněte například zobrazení textu do okna aplikace a umístěte ho tak, aby vyplnil oblast obsahu:
Uložte dokument, vraťte se do Visual Studio pro Mac pro synchronizaci s Xcode, spusťte aplikaci, zadejte nějaký text, vyberte ho a klikněte na položku panelu nástrojů Barvy. Všimněte si, že textové zobrazení automaticky funguje s výběrem barvy:
Použití obrázků s položkami panelu nástrojů
Pomocí položky panelu nástrojů Obrázek lze na panelu nástrojů zobrazit jakýkoli rastrový obrázek přidaný do složky Zdroje prostředků (a vzhledem k akci sestavení prostředku sady) na panelu nástrojů jako ikonu:
V Visual Studio pro Mac klikněte v oblasti řešení pravým tlačítkem na složku Prostředky a vyberte Přidat>soubory.
V dialogovém okně Přidat soubory přejděte na požadované obrázky, vyberte je a klikněte na tlačítko Otevřít :
Vyberte Kopírovat, zaškrtněte políčko Použít stejnou akci pro všechny vybrané soubory a klikněte na OK:
V oblasti řešení poklikejte na MainWindow.xib a otevřete ho v Xcode.
Vyberte panel nástrojů v hierarchii rozhraní a kliknutím na některou z jejích položek otevřete dialogové okno přizpůsobení.
Přetáhněte položku panelu nástrojů obrázku z inspektoru knihovny do oblasti Povolené položky panelu nástrojů:
V Inspektoru atributů vyberte obrázek, který byl právě přidán v Visual Studio pro Mac:
Nastavte popisek na "Koš" a popisek palety na "Vymazat dokument":
Přetáhněte položku panelu nástrojů oddělovače z inspektoru knihovny do oblasti Povolené položky panelu nástrojů:
Přetáhněte položku oddělovače a položku Koš do oblasti Výchozí položky panelu nástrojů a nastavte pořadí položek panelu nástrojů zleva doprava (Barvy, Písma, Oddělovač, Koš, Flexibilní prostor, Tisk):
Uložte změny a vraťte se do Visual Studio pro Mac pro synchronizaci s Xcode.
Spuštěním aplikace ověřte, že se ve výchozím nastavení zobrazuje nový panel nástrojů:
Zveřejnění položek panelu nástrojů s výstupy a akcemi
Pokud chcete získat přístup k panelu nástrojů nebo položce panelu nástrojů v kódu, musí být připojen k výstupu nebo akci:
Na panelu řešení poklikejte na Main.storyboard a otevřete ho v Xcode.
Ujistěte se, že vlastní třída WindowController byla přiřazena k hlavnímu kontroleru oken v nástroji Identity Inspector:
Dále vyberte položku panelu nástrojů v hierarchii rozhraní:
Otevřete zobrazení Pomocníka, vyberte soubor WindowController.h a ovládací prvek přetáhněte z položky panelu nástrojů do souboru WindowController.h.
Nastavte typ Připojení ion na Akci, jako název zadejte "košDocument" a klikněte na tlačítko Připojení:
Zobrazení textu zpřístupňte jako výstup s názvem documentEditor v souboru ViewController.h:
Uložte změny a vraťte se do Visual Studio pro Mac pro synchronizaci s Xcode.
V Visual Studio pro Mac upravte soubor ViewController.cs a přidejte následující kód:
public void EraseDocument() {
documentEditor.Value = "";
}
Dále upravte soubor WindowController.cs a do dolní části WindowController
třídy přidejte následující kód:
[Export ("trashDocument:")]
void TrashDocument (NSObject sender) {
var controller = ContentViewController as ViewController;
controller.EraseDocument ();
}
Při spuštění aplikace bude položka panelu nástrojů Koš aktivní:
Všimněte si, že položku panelu nástrojů Koše teď můžete použít k odstranění textu.
Zakázání položek panelu nástrojů
Pokud chcete zakázat položku na panelu nástrojů, vytvořte vlastní NSToolbarItem
třídu a přepište metodu Validate
. Potom v Tvůrci rozhraní přiřaďte vlastní typ k položce, kterou chcete povolit nebo zakázat.
Pokud chcete vytvořit vlastní NSToolbarItem
třídu, klikněte pravým tlačítkem myši na projekt a vyberte Přidat>nový soubor.... Vyberte obecnou>prázdnou třídu, jako název zadejte "ActivatableItem" a klikněte na tlačítko Nový:
Dále upravte soubor ActivatableItem.cs tak, aby se četl takto:
using System;
using Foundation;
using AppKit;
namespace MacToolbar
{
[Register("ActivatableItem")]
public class ActivatableItem : NSToolbarItem
{
public bool Active { get; set;} = true;
public ActivatableItem ()
{
}
public ActivatableItem (IntPtr handle) : base (handle)
{
}
public ActivatableItem (NSObjectFlag t) : base (t)
{
}
public ActivatableItem (string title) : base (title)
{
}
public override void Validate ()
{
base.Validate ();
Enabled = Active;
}
}
}
Poklikáním na Main.storyboard ho otevřete v Xcode. Vyberte položku panelu nástrojů Koše vytvořenou výše a změňte její třídu na "ActivatableItem" v Inspektoru identity:
Vytvořte zásuvku s názvem trashItem
položky panelu nástrojů Koše . Uložte změny a vraťte se do Visual Studio pro Mac pro synchronizaci s Xcode. Nakonec otevřete MainWindow.cs a aktualizujte metodu AwakeFromNib
tak, aby se četla takto:
public override void AwakeFromNib ()
{
base.AwakeFromNib ();
// Disable trash
trashItem.Active = false;
}
Spusťte aplikaci a všimněte si, že položka koše je teď na panelu nástrojů zakázaná:
Shrnutí
Tento článek se podrobně podíval na práci s panely nástrojů a položkami panelu nástrojů v aplikaci Xamarin.Mac. Popisuje, jak vytvářet a udržovat panely nástrojů v Tvůrci rozhraní Xcode, jak některé ovládací prvky uživatelského rozhraní automaticky pracují s položkami panelu nástrojů, jak pracovat s panely nástrojů v kódu jazyka C# a jak povolit a zakázat položky panelu nástrojů.