Panely nástrojů v Xamarin. Mac

Tento článek popisuje práci s panely nástrojů v aplikaci Xamarin. Mac. Zabývá se vytvářením a údržbou panelů nástrojů v Xcode a Interface Builder, jejich vystavení kódu a jejich používání programově.

vývojáři Xamarin. Mac pracující se Visual Studio pro Mac mají přístup ke stejným ovládacím prvkům uživatelského rozhraní, které jsou k dispozici pro vývojáře macOS, kteří pracují s Xcode, včetně ovládacího prvku toolbar. Protože se Xamarin. Mac integruje přímo s Xcode, je možné použít Interface Builder Xcode k vytváření a údržbě položek panelu nástrojů. Tyto položky panelu nástrojů lze také vytvořit v jazyce C#.

Panely nástrojů v macOS jsou přidány do horní části okna a poskytují snadný přístup k příkazům, které souvisejí s jejími funkcemi. Panely nástrojů můžou být skryté, zobrazovat nebo přizpůsobené uživateli aplikace a můžou prezentovat položky panelu nástrojů různými způsoby.

Tento článek se zabývá 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 částí Xcode a Interface Builder a témata a Akce , které se týkají klíčových konceptů a postupů, které se použijí v rámci této příručky.

Podívejte se také na Exposing C# classes / methods to Objective-C oddíl dokumentu Exposing C# classes / methods to Objective-C . Vysvětluje RegisterExport atributy a použité pro připojení tříd jazyka C# ke Objective-C třídám.

Úvod k panelům nástrojů

Každé okno aplikace macOS může obsahovat panel nástrojů:

Ukázkové okno s panelem nástrojů

Panely nástrojů poskytují uživatelům aplikace snadný způsob, jak rychle přistupovat k důležitým nebo často používaným funkcím. Například aplikace pro úpravy dokumentu může poskytovat položky panelu nástrojů pro nastavení barvy textu, změnu písma nebo tisk aktuálního dokumentu.

Panely nástrojů mohou zobrazit položky třemi způsoby:

  1. Ikona a text

    Panel nástrojů s ikonami a textem

  2. Pouze ikona

    An icon-only toolbarPanel nástrojů

  3. Pouze text

    A text-only toolbarPanel text

Přepínejte mezi těmito režimy tak, že kliknete pravým tlačítkem myši na panel nástrojů a v místní nabídce vyberete režim zobrazení:

Kontextová nabídka pro panel nástrojů

Pomocí stejné nabídky můžete zobrazit panel nástrojů v menší velikosti:

Panel nástrojů s malými ikonami

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

Dialogové okno, které slouží k přizpůsobení panelu nástrojůpomocí

Při nastavování panelu nástrojů v Interface Builder Xcode může vývojář poskytnout další položky panelu nástrojů, které nejsou součástí výchozí konfigurace. Uživatelé aplikace mohou následně přizpůsobit panel nástrojů, přidat a odebrat tyto předem definované položky podle potřeby. Lze samozřejmě obnovit výchozí konfiguraci panelu nástrojů.

Panel nástrojů se automaticky připojí k nabídce zobrazení , která uživatelům umožňuje jeho skrytí, zobrazení a přizpůsobení:

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

Další podrobnosti najdete v dokumentaci k funkcím integrované nabídky .

Kromě toho, pokud je panel nástrojů správně nakonfigurován v Interface Builder, aplikace automaticky uchová přizpůsobení panelu nástrojů v rámci více spuštění aplikace.

Následující části této příručky popisují, jak vytvořit a spravovat panely nástrojů pomocí Interface Builder Xcode a jak s nimi pracovat v kódu.

Nastavení vlastního řadiče hlavního okna

K vystavení prvků uživatelského rozhraní pro kód jazyka C# prostřednictvím výstupů a akcí musí aplikace Xamarin. Mac používat vlastní kontroler oken:

  1. Otevřete scénář aplikace v Interface Builder Xcode.

  2. Vyberte na návrhové ploše kontroler oken.

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

    Nastavení názvu vlastní třídy pro řadič okna

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

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

    V oblast řešení vyberte v oblast řešení WindowController. cs

  6. Znovu otevřete scénář v Interface Builder Xcode.

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

    Soubor WindowController. h souboru

Vytváření a Správa panelů nástrojů v Xcode

Panely nástrojů se vytvářejí a udržují pomocí Interface Builder Xcode. Chcete-li přidat panel nástrojů do aplikace, upravte primární scénář aplikace (v tomto případě Hlavní scénář) dvojím kliknutím na něj v oblast řešení:

Otevírání Main. scénář ve oblast řešení

V inspektoru knihovnyzadejte do vyhledávacího pole "Tool", aby bylo snazší zobrazit všechny dostupné položky panelu nástrojů:

Inspektor knihovny filtrovaný tak, aby zobrazoval položky panelu nástrojů

Přetáhněte panel nástrojů do okna v editoru rozhraní. Po výběru panelu 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. Zobrazit – určuje, zda se na panelu nástrojů zobrazují ikony, text nebo obojí.
  2. Viditelné při spuštění – Pokud je vybraná, panel nástrojů je ve výchozím nastavení viditelný.
  3. Přizpůsobitelná možnost – Pokud je vybraná, můžou uživatelé upravovat a přizpůsobovat panel nástrojů.
  4. Oddělovač – Pokud je vybraná, tenká vodorovná čára odděluje panel nástrojů od obsahu okna.
  5. Size – nastaví velikost panelu nástrojů.
  6. Automatické ukládání – Pokud je tato možnost vybraná, aplikace při spuštění aplikace uchová změny v konfiguraci panelu nástrojů uživatele.

Vyberte možnost automatického ukládání a ponechte všechny ostatní vlastnosti na jejich výchozím nastavení.

Po otevření panelu nástrojů v hierarchii rozhranízobrazte dialog pro přizpůsobení výběrem položky na panelu nástrojů:

Přizpůsobení panelu nástrojů

Pomocí tohoto dialogového okna můžete nastavit vlastnosti položek, které jsou již součástí panelu nástrojů, navrhovat výchozí panel nástrojů pro aplikaci a poskytnout uživatelům další položky panelu nástrojů pro výběr při přizpůsobení panelu nástrojů. Chcete-li přidat položky na panel nástrojů, přetáhněte je z okna inspektor knihovny:

Inspektorknihovny inspektor knihovny

Je možné přidat následující položky panelu nástrojů:

  • Položka panelu nástrojů obrázku – Položka panelu nástrojů s vlastní imagí jako ikonu.

  • Flexibilní panel nástrojů prostoru – flexibilní prostor, který slouží k zarovnání dalších položek panelu nástrojů Například jedna nebo více položek panelu nástrojů následovaných flexibilní položkou panelu nástrojů a jinou položkou panelu nástrojů by připnout poslední položku na pravou stranu panelu nástrojů.

  • Položka panelu nástrojů prostoru – pevný prostor mezi položkami na panelu nástrojů

  • Položka panelu nástrojů oddělovač – viditelný oddělovač mezi dvěma nebo více položkami panelu nástrojů pro seskupení

  • Přizpůsobení položky panelu nástrojů – umožní uživatelům přizpůsobit panel nástrojů.

  • Položka panelu nástrojů tisk – umožňuje uživatelům Tisk otevřeného dokumentu.

  • Položka panelu nástrojů zobrazit barvy – zobrazí standardní výběr systémové barvy:

    The system color pickerSystém výběr

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

    Výběr písma– výběr

Důležité

Jak bude vidět později, mnoho standardních ovládacích prvků uživatelského rozhraní kakaa, 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ů

Chcete-li přidat položku na panel nástrojů, vyberte panel nástrojů v hierarchii rozhraní a klikněte na jednu z položek, čímž se zobrazí dialogové okno přizpůsobení. V dalším kroku 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í panelunástrojů v dialogovém okně panelu nástrojů

Chcete-li se ujistit, že je nová položka součástí výchozího panelu nástrojů, přetáhněte ji na výchozí oblast položek panelu nástrojů :

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

Chcete-li 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 na 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 pro položku
  • 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ých položek panelu nástrojů
  • Tag – volitelný jedinečný identifikátor, který pomáhá identifikovat položku v kódu.
  • Identifikátor – definuje typ položky panelu nástrojů. Vlastní hodnota může být použita k výběru položky panelu nástrojů v kódu.
  • Vybratelné – Pokud je zaškrtnuto, bude položka fungovat jako tlačítko pro zapnutí/vypnutí.

Důležité

Přidejte položku do oblasti povolené položky panelu nástrojů , ale ne jako výchozí panel nástrojů k poskytnutí možností přizpůsobení pro uživatele.

Přidání dalších ovládacích prvků uživatelského rozhraní na panel nástrojů

Několik prvků uživatelského rozhraní kakaa, jako jsou vyhledávací pole a segmentované ovládací prvky, lze také přidat na panel nástrojů.

Pokud to chcete vyzkoušet, otevřete panel nástrojů v hierarchii rozhraní a vyberte položku panelu nástrojů a otevřete tak 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 pro přizpůsobení panelu nástrojů

Z tohoto místa použijte Interface Builder ke konfiguraci vyhledávacího pole a zpřístupněte ho pro kód prostřednictvím akce nebo zásuvky.

Integrovaná podpora položek panelu nástrojů

Několik prvků uživatelského rozhraní kakaa ve výchozím nastavení komunikuje se standardními položkami panelu nástrojů. Můžete například přetáhnout textové zobrazení do okna aplikace a umístit ho do oblasti 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, vyberte ji a pak klikněte na položku panelu nástrojů barvy . Všimněte si, že zobrazení textu se automaticky pracuje se výběrem barev:

Integrovaná funkce panelu nástrojů s možností zobrazení textu a výběr barev

Použití obrázků s položkami panelu nástrojů

Pomocí položky na panelu nástrojů obrázkuse jako ikona může zobrazit libovolný rastrový obrázek přidaný do složky Resources (a kvůli akci sestavení prostředku sady prostředků):

  1. v Visual Studio pro Mac v Oblast řešeníklikněte pravým tlačítkem na složku resources (prostředky ) a vyberte přidatpřidat soubory.

  2. V dialogovém okně Přidat soubory přejděte do požadovaných imagí, vyberte je a klikněte na tlačítko otevřít :

    Výběr obrázků pro přidání

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

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

  4. V oblast řešenídvakrát klikněte na MainWindow. xib a otevřete ho v Xcode.

  5. Vyberte panel nástrojů v hierarchii rozhraní a kliknutím na jednu z jeho položek otevřete dialog vlastní nastavení.

  6. Přetáhněte položku panelu nástrojů obrázku z inspektoru knihovny do oblasti povolených položek panelu nástrojů na panelu nástrojů:

    An Image Toolbar Item added to the Allowed Toolbar Items areaPoložka panelu nástrojů

  7. v inspektoru atributůvyberte obrázek, který jste právě přidali v Visual Studio pro Mac:

    Nastavení vlastní image pro položku panelu nástrojů

  8. Nastavte popisek na koš a Popisek palety na Vymazat dokument:

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

  9. Přetáhněte položku panelu nástrojů oddělovače z inspektoru knihovny do oblasti povolených položek panelu nástrojů na panelu nástrojů:

    Položka panelu nástrojů oddělovače přidaná do oblasti povolených položek panelu nástrojů Odstraněná

  10. Přetáhněte položku oddělovače a položku "Koš" na výchozí oblast položky panelu nástrojů a nastavte pořadí položek panelu nástrojů zleva doprava následujícím způsobem (barvy, písma, oddělovač, odpadkový, flexibilní prostor, tisk):

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

  11. uložte změny a vraťte se do Visual Studio pro Mac pro synchronizaci s Xcode.

Spusťte aplikaci, abyste ověřili, že se nový panel nástrojů zobrazuje ve výchozím nastavení:

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

Vystavení položek panelu nástrojů pomocí odbytišť a akcí

Chcete-li získat přístup k položce panelu nástrojů nebo panelu nástrojů v kódu, musí být připojen k výstupu nebo akci:

  1. V oblast řešenípoklikejte na Main. scénář a otevře se v Xcode.

  2. Zajistěte, aby byla vlastní třída "WindowController" přiřazena k hlavnímu řadiči okna v inspektoru identity:

    Použití nástroje identity Inspector k nastavení vlastní třídy pro řadič okna

  3. V dalším kroku vyberte položku panelu nástrojů v hierarchii rozhraní:

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

  4. Otevřete zobrazení asistenta, vyberte soubor WindowController. h a ovládací prvek přetáhněte z položky panelu nástrojů na soubor WindowController. h .

  5. nastavte typ připojení na Action, jako názevzadejte "trashDocument" a klikněte na tlačítko Připojení :

    Konfigurace akce pro položku panelu nástrojů

  6. Zpřístupnit textové zobrazení jako výstup s názvem "documentEditor" v souboru soubor viewcontroller. h :

    Konfigurace výstupu pro zobrazení textu

  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 soubor viewcontroller. cs a přidejte následující kód:

public void EraseDocument() {
    documentEditor.Value = "";
}

Dále upravte soubor WindowController. cs a přidejte následující kód do dolní části třídy:

[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 odpadkového koše

Všimněte si, že položka panelu nástrojů Koš se teď dá použít k odstranění textu.

Zakázání položek panelu nástrojů

Chcete-li zakázat položku na panelu nástrojů, vytvořte vlastní NSToolbarItem třídu a přepište Validate metodu. Pak v Interface Builder přiřaďte vlastní typ položce, kterou chcete povolit nebo zakázat.

Chcete-li vytvořit vlastní NSToolbarItem třídu, klikněte pravým tlačítkem myši na projekt a vyberte možnost NSToolbarItem>>. Vyberte Obecnéprázdné třídy, jako názevzadejte "ActivatableItem" a klikněte na tlačítko Nový :

přidání prázdné třídy v Visual Studio pro Mac

Dále upravte soubor ActivatableItem. cs pro čtení následujícím způsobem:

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;
        }
    }
}

Dvojitým kliknutím na Main. scénář ho otevřete v Xcode. Vyberte položku panelu nástrojů odpadkového koše vytvořenou výše a v inspektoru identityzměňte její třídu na "ActivatableItem":

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

Vytvořte zásuvku s názvem trashItem pro položku panelu nástrojů trashItem . 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 tak, aby se načetla takto:

public override void AwakeFromNib ()
{
    base.AwakeFromNib ();

    // Disable trash
    trashItem.Active = false;
}

Spusťte aplikaci a Všimněte si, že položka odpadkového koše je teď na panelu nástrojů zakázaná:

Panel nástrojů s neaktivní položkou odpadkového

Souhrn

V tomto článku se podíváme na podrobné zobrazení práce s panely nástrojů a položkami panelů nástrojů v aplikaci Xamarin. Mac. Popisuje, jak vytvořit a spravovat panely nástrojů v Interface Builder 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ů.