Sdílet prostřednictvím


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ů:

Příklad okna s panelem 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:

  1. Ikona a text

    Panel nástrojů s ikonami a textem

  2. Pouze ikona

    Panel nástrojů pouze s ikonou

  3. Pouze text

    Panel nástrojů jen pro 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í:

Místní nabídka panelu nástrojů

Pomocí stejné nabídky zobrazte panel nástrojů s menší velikostí:

Panel nástrojů s malými ikonami

Nabídka také umožňuje přizpůsobení panelu nástrojů:

Dialogové okno použité k 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:

Položky související s panelem nástrojů v nabídce Zobrazit

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:

  1. Otevřete scénář aplikace v Tvůrci rozhraní Xcode.

  2. Vyberte ovladač okna na návrhové ploše.

  3. Přepněte do inspektoru identity a jako název třídy zadejte "WindowController":

    Nastavení vlastního názvu třídy pro kontroler oken

  4. Uložte změny a vraťte se do Visual Studio pro Mac k synchronizaci.

  5. Do projektu se na panelu řešení v Visual Studio pro Mac přidá soubor WindowController.cs:

    Výběr WindowController.cs v oblasti řešení

  6. Znovu otevřete scénář v Tvůrci rozhraní Xcode.

  7. Soubor WindowController.h bude k dispozici pro použití:

    Soubor WindowController.h

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í:

Otevření Main.storyboardu v oblasti ř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ů:

Kontrola knihovny filtrovaná tak, aby zobrazovala 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ů:

Inspektor atributů pro panel nástrojů

K dispozici jsou následující vlastnosti:

  1. Zobrazení – určuje, jestli panel nástrojů zobrazuje ikony, text nebo obojí.
  2. Viditelné při spuštění – pokud je vybráno, je panel nástrojů ve výchozím nastavení viditelný.
  3. Přizpůsobitelné – pokud je vybráno, můžou uživatelé panel nástrojů upravovat a přizpůsobovat.
  4. Oddělovač – pokud je vybraná, tenká vodorovná čára odděluje panel nástrojů od obsahu okna.
  5. Velikost – nastaví velikost panelu nástrojů.
  6. 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ů:

Přizpůsobení 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:

Kontrola knihovny

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:

    Výběr barvy systému

  • Zobrazit položku panelu nástrojů písma – zobrazí standardní dialogové okno systémového písma:

    Selektor 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ů:

Povolené položky panelu nástrojů v dialogovém okně přizpůsobení 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ů:

Změna pořadí položky panelu nástrojů přetažením

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:

Přizpůsobení položky panelu nástrojů pomocí inspektoru atributů

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ů:

Použití dialogového okna přizpůsobení 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:

Přidání textového zobrazení do aplikace

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:

Integrované funkce panelu nástrojů s textovým zobrazením a výběrem barev

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:

  1. 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.

  2. 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 :

    Výběr obrázků, které chcete přidat

  3. Vyberte Kopírovat, zaškrtněte políčko Použít stejnou akci pro všechny vybrané soubory a klikněte na OK:

    Výběr akce kopírování pro přidané obrázky

  4. V oblasti řešení poklikejte na MainWindow.xib a otevřete ho v Xcode.

  5. 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í.

  6. Přetáhněte položku panelu nástrojů obrázku z inspektoru knihovny do oblasti Povolené položky panelu nástrojů:

    Položka panelu nástrojů obrázku přidaná do oblasti Povolené položky panelu nástrojů

  7. V Inspektoru atributů vyberte obrázek, který byl právě přidán v Visual Studio pro Mac:

    Nastavení vlastního obrázku pro položku panelu nástrojů

  8. Nastavte popisek na "Koš" a popisek palety na "Vymazat dokument":

    Nastavení položky panelu nástrojů Popisek a popisek palety

  9. Přetáhněte položku panelu nástrojů oddělovače z inspektoru knihovny do oblasti Povolené položky panelu nástrojů:

    Položka panelu nástrojů oddělovače přidaná do oblasti Povolené položky panelu nástrojů

  10. 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):

    Výchozí položky panelu nástrojů

  11. 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ů:

Panel nástrojů s přizpůsobenými výchozími položkami

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:

  1. Na panelu řešení poklikejte na Main.storyboard a otevřete ho v Xcode.

  2. Ujistěte se, že vlastní třída WindowController byla přiřazena k hlavnímu kontroleru oken v nástroji Identity Inspector:

    Použití nástroje Identity Inspector k nastavení vlastní třídy pro kontroler oken

  3. Dále vyberte položku panelu nástrojů v hierarchii rozhraní:

    Výběr položky panelu nástrojů v hierarchii rozhraní

  4. 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.

  5. Nastavte typ Připojení ion na Akci, jako název zadejte "košDocument" a klikněte na tlačítko Připojení:

    Konfigurace akce pro položku panelu nástrojů

  6. Zobrazení textu zpřístupňte jako výstup s názvem documentEditor v souboru ViewController.h:

    Konfigurace výstupu pro textové zobrazení

  7. 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í:

Panel nástrojů s aktivní položkou koše

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ý:

Přidání prázdné třídy do Visual Studio pro Mac

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:

Nastavení vlastní třídy pro položku panelu nástrojů

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á:

Panel nástrojů s neaktivní položkou koše

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ů.