Xamarin. Mac içindeki Araç çubukları

Bu makalede bir Xamarin. Mac uygulamasındaki araç çubuklarıyla çalışma açıklanmaktadır. Xcode ve Interface Builder araç çubuklarının oluşturulmasını ve bakımının yanı sıra bunları kodla ortaya çıkarmak ve bunlarla programlı bir şekilde çalışmasını ele alır.

Mac için Visual Studio çalışan Xamarin. Mac geliştiricileri, araç çubuğu denetimi de dahil olmak üzere xcode ile çalışan macos geliştiricileri için kullanılabilen uı denetimlerine erişebilir. Xamarin. Mac doğrudan Xcode ile tümleştiğinden, araç çubuğu öğelerini oluşturmak ve sürdürmek için Xcode 'un Interface Builder kullanmak mümkündür. Bu araç çubuğu öğeleri de C# dilinde oluşturulabilir.

MacOS 'teki araç çubukları bir pencerenin üst kısmına eklenir ve işlevleriyle ilgili komutlara kolay erişim sağlar. Araç çubukları, bir uygulamanın kullanıcıları tarafından gizlenebilir, gösterilir veya özelleştirilebilir ve araç çubuğu öğelerini çeşitli yollarla sunabilir.

Bu makalede, bir Xamarin. Mac uygulamasındaki araç çubuklarıyla ve araç çubuğu öğeleriyle çalışma hakkında temel bilgiler yer almaktadır.

Devam etmeden önce, bu kılavuzda kullanılacak temel kavramları ve teknikleri kapsadığından, Hello, Mac makalesini (özellikle de xcode ve Interface Builder ve diğer ve eylemler bölümlerine giriş) okuyun.

Ayrıca Exposing C# classes / methods to Objective-C , Exposing C# classes / methods to Objective-C işlem belgesinin bölümüne göz atın. RegisterExport C# sınıflarını sınıflara bağlamak için kullanılan ve özniteliklerini açıklar Objective-C .

Araç çubuklarına giriş

MacOS uygulamasındaki herhangi bir pencerede bir araç çubuğu bulunabilir:

An example window with a toolbarBir araç çubuğu içeren , bir pencere

Araç çubukları, uygulamanızın kullanıcılarının önemli veya yaygın olarak kullanılan özelliklere hızlı bir şekilde erişmeleri için kolay bir yol sağlar. Örneğin, belge düzenleyen bir uygulama metin rengini ayarlamak, yazı tipini değiştirmek veya geçerli belgeyi yazdırmak için araç çubuğu öğeleri sağlayabilir.

Araç çubukları, öğeleri üç şekilde görüntüleyebilir:

  1. Simge ve metin

    A toolbar with icons and textSimgeler

  2. Yalnızca simge

    An icon-only toolbarYalnızca simge araç çubuğu bir

  3. Yalnızca metin

    A text-only toolbarSalt metin araççubuğu

Araç çubuğuna sağ tıklayıp bağlam menüsünden bir görüntü modu seçerek bu modlar arasında geçiş yapın:

The contextual menu for a toolbarAraç çubuğu , bağlam menüsü

Araç çubuğunu daha küçük bir boyutta göstermek için aynı menüyü kullanın:

A toolbar with small iconsKüçük simgelerle, çubuğu

Menü araç çubuğunu özelleştirmeye de izin verir:

Araç çubuğunu özelleştirmek için kullanılan iletişim

Xcode 'un Interface Builder bir araç çubuğunu ayarlarken, bir geliştirici varsayılan yapılandırmasının parçası olmayan ek araç çubuğu öğeleri sağlayabilir. Uygulamanın kullanıcıları daha sonra bu önceden tanımlanmış öğeleri gerektiği gibi ekleyerek ve kaldırarak araç çubuğunu özelleştirebilir. Tabii ki araç çubuğu varsayılan yapılandırmasına sıfırlanabilir.

Araç çubuğu, kullanıcıların bunu gizlemesini, göstermesini ve özelleştirmesini sağlayan Görünüm menüsüne otomatik olarak bağlanır.

Toolbar-related items in the View menuGörünüm menüsünde öğeler görüntüleme menüsü

Daha fazla bilgi için bkz. yerleşik menü işlevselliği belgeleri.

Ayrıca, araç çubuğu Interface Builder ' de düzgün şekilde yapılandırıldıysa, uygulama otomatik olarak uygulamanın birden çok başlatıldığında araç çubuğu özelleştirmelerini kalıcı hale getirilecektir.

Bu kılavuzun sonraki bölümlerinde, Xcode 'un Interface Builder araç çubuklarının nasıl oluşturulacağı ve bakımını yapılacağı ve kod içinde bunlarla nasıl çalışılacağı açıklanır.

Özel ana pencere denetleyicisi ayarlama

UI öğelerini outperi ve eylemleriyle C# koduna göstermek için, Xamarin. Mac uygulamasının özel bir pencere denetleyicisi kullanması gerekir:

  1. Uygulamanın film şeridini Xcode Interface Builder içinde açın.

  2. Tasarım yüzeyinde pencere denetleyicisini seçin.

  3. Kimlik denetçisi ' ne geçin ve sınıf adıolarak "windowcontroller" yazın:

    Setting a custom class name for the window controllerPencere denetleyicisi için özel bir ayarlama ayarlama

  4. değişikliklerinizi kaydedin ve eşitlemek için Mac için Visual Studio geri dönün.

  5. Mac için Visual Studio içindeki Çözüm Bölmesi projenize bir windowcontroller. cs dosyası eklenecektir:

    Selecting WindowController.cs in the Solution PadÇözüm Bölmesi windowcontroller. cs ' nin seçilmesi ' de

  6. Film şeridini Xcode Interface Builder yeniden açın.

  7. Windowcontroller. h dosyası kullanıma sunulacaktır:

    The WindowController.h fileWindowcontroller. h dosyası

Xcode 'da araç çubukları oluşturma ve sürdürme

Araç çubukları Xcode 'un Interface Builder oluşturulur ve sürdürülür. Bir uygulamaya araç çubuğu eklemek için, Çözüm Bölmesi, uygulamanın birincil film şeridini (Bu örnekte ana. görsel taslak), içinde çift tıklayarak düzenleyin:

Çözüm bölmesi ana . görsel taslak

Kitaplık denetçisinde, tüm kullanılabilir araç çubuğu öğelerini görmeyi kolaylaştırmak Için Arama kutusuna "araç" yazın:

The Library Inspector, filtered to show toolbar itemsKitaplık denetçisi, araç çubuğu öğelerini

Bir araç çubuğunu arabirim düzenleyicisindepencerenin üzerine sürükleyin. Araç çubuğu seçiliyken, öznitelik denetçisindeözellikleri ayarlayarak davranışını yapılandırın:

Bir araççubuğu için öznitelikler denetçisi denetçisi

Aşağıdaki özellikler mevcuttur:

  1. Görüntüle -araç çubuğunun simgeler, metin veya her ikisini de görüntüleyip görüntülemediğini denetler
  2. Başlatma sırasında görünür -seçilirse, araç çubuğu varsayılan olarak görünür.
  3. Özelleştirilebilir -seçilirse, kullanıcılar araç çubuğunu düzenleyebilir ve özelleştirebilir.
  4. Ayırıcı -seçildiyse, ince yatay bir çizgi araç çubuğunu pencerenin içeriğiyle ayırır.
  5. Boyut -araç çubuğunun boyutunu ayarlar
  6. Otomatik kaydetme -seçilirse uygulama, kullanıcının araç çubuğunun yapılandırma değişikliklerini uygulama başlatıldığında kalıcı hale getirilecektir.

Otomatik Kaydet seçeneğini belirleyin ve diğer tüm özellikleri varsayılan ayarlarında bırakın.

Arabirim hiyerarşisindearaç çubuğunu açtıktan sonra, bir araç çubuğu öğesi seçerek özelleştirme iletişim kutusunu getirin:

Customizing the toolbarAraç

Araç çubuğunun zaten bir parçası olan öğelerin özelliklerini ayarlamak, uygulamanın varsayılan araç çubuğunu tasarlamak ve bir kullanıcının araç çubuğunu özelleştirirken seçmesini sağlamak için bu iletişim kutusunu kullanın. Araç çubuğuna öğe eklemek için kitaplık denetçisindensürükleyin:

Kitaplık denetçisi

Aşağıdaki araç çubuğu öğeleri eklenebilir:

  • Görüntü araç çubuğu öğesi -simge olarak özel bir görüntüye sahip bir araç çubuğu öğesi.

  • Esnek alan araç çubuğu öğesi -sonraki araç çubuğu öğelerini yaslamak için kullanılan esnek alan. Örneğin, bir veya daha fazla araç çubuğu öğesinin ardından esnek alan araç çubuğu öğesi ve başka bir araç çubuğu öğesi, son öğeyi araç çubuğunun sağ tarafına sabitleyebilir.

  • Boşluk araç çubuğu öğesi -araç çubuğundaki öğeler arasındaki sabit boşluk

  • Ayırıcı araç çubuğu öğesi -gruplandırma için iki veya daha fazla araç çubuğu öğesi arasında görünür bir ayırıcı

  • Araç çubuğu öğesini özelleştirme -kullanıcıların araç çubuğunu özelleştirmesini sağlar

  • Yazdırma araç çubuğu öğesi -kullanıcıların açık belgeyi yazdırmasını sağlar

  • Renkleri göster araç çubuğu öğesi -standart sistem renk seçiciyi görüntüler:

    The system color pickerSistem

  • Yazı tipi araç çubuğu öğesini göster -standart sistem yazı tipi iletişim kutusunu görüntüler:

    Seçicisi yazı tipi Seçicisi

Önemli

Daha sonra görünecektir, arama alanları, kesimli denetimler ve yatay kaydırıcılar gibi birçok standart Cocoa Kullanıcı arabirimi denetimi de bir araç çubuğuna eklenebilir.

Bir araç çubuğuna öğe ekleme

Bir araç çubuğuna öğe eklemek için, arabirim hiyerarşisindeki araç çubuğunu seçin ve öğelerinden birine tıklayın ve özelleştirme iletişim kutusunun görünmesine neden olur. Ardından, kitaplık denetçisinden , Izin verilen araç çubuğu öğeleri alanına yeni bir öğe sürükleyin:

The Allowed Toolbar Items in the toolbar customization dialogAraç çubuğu kutusundaki izin verilen araç çubuğu öğeleri

Yeni bir öğenin varsayılan araç çubuğunun bir parçası olduğundan emin olmak için, varsayılan araç çubuğu öğeleri alanına sürükleyin:

Reordering a toolbar item by draggingBir araç çubuğu bir araç çubuğu öğesini sürükleyerek yeniden

Varsayılan araç çubuğu öğelerini yeniden sıralamak için sola veya sağa sürükleyin.

Ardından, öğe için varsayılan özellikleri ayarlamak üzere öznitelikler denetçisini kullanın:

Customizing a toolbar item using the Attributes InspectorÖznitelikler denetçisini bir

Aşağıdaki özellikler mevcuttur:

  • Görüntü adı -öğe için simge olarak kullanılacak resim
  • Etiket - Araç çubuğunda öğe için görüntülenmek için metin
  • Palet Etiketi - İzin Verilen Araç Çubuğu Öğeleri alanında öğe için görüntülenmek için metin
  • Etiket - Kodda öğeyi tanımlamaya yardımcı olan isteğe bağlı, benzersiz bir tanımlayıcı.
  • Tanımlayıcı - Araç çubuğu öğe türünü tanımlar. Kodda bir araç çubuğu öğesi seçmek için özel bir değer kullanılabilir.
  • Seçilebilir - İşaretlenirse, öğe bir açık/kapalı düğmesi gibi davranır.

Önemli

Kullanıcılara özelleştirme seçenekleri sağlamak için İzin Verilen Araç Çubuğu Öğeleri alanına bir öğe ekleyin, ancak varsayılan araç çubuğunu ekleyin.

Araç çubuğuna başka kullanıcı arabirimi denetimleri ekleme

Arama alanları ve kesimli denetimler gibi çeşitli Cocoa kullanıcı arabirimi öğeleri de bir araç çubuğuna eklenebilir.

Bunu denemek için Arabirim Hiyerarşisi'nin araç çubuğunu açın ve özelleştirme iletişim kutusunu açmak için bir araç çubuğu öğesi seçin. Kitaplık Denetçisi'nin Arama Alanını İzin Verilen Araç Çubuğu Öğeleri alanına sürükleyin:

Araç çubuğu özelleştirme iletişim kutusunu kullanmaAraç çubuğu özelleştirme iletişim kutusunu

Buradan, arama Interface Builder yapılandırmak ve bunu bir eylem veya çıkış aracılığıyla koda göstermek için Interface Builder'yi kullanın.

Yerleşik araç çubuğu öğesi desteği

Birkaç Cocoa kullanıcı arabirimi öğeleri varsayılan olarak standart araç çubuğu öğeleriyle etkileşime geçmenizi sağlar. Örneğin, uygulamanın penceresine bir Metin Görünümü sürükleyip içerik alanı dolduracak şekilde konumlarını seçin:

Uygulamaya metin görünümü ekleme

Belgeyi kaydedin, Xcode Mac için Visual Studio eşitlemek için belgeye geri dönüp uygulamayı çalıştırın, metin girin, seçin ve Renkler araç çubuğu öğesini tıklatın. Metin görünümünün renk seçici ile otomatik olarak çalıştığını fark edersiniz:

Metin görünümü ve renk seçici ileyerleşik araç çubuğu işlevselliği Metin görünümü ve renk seçici ile yerleşik araç çubuğu

Araç çubuğu öğeleriyle görüntüleri kullanma

Görüntü Araç Çubuğu Öğesi kullanılarak,Kaynaklar klasörüne eklenen herhangi bir bit eşlem resmi (ve Paket Kaynağı derleme eylemi verilir)araç çubuğunda bir simge olarak görüntülenebilir:

  1. Bu Mac için Visual Studio, Çözüm BölmesiKaynaklar klasörüne sağ tıklayın ve Dosya Ekle'yiseçin.

  2. Dosya Ekle iletişim kutusunda istediğiniz görüntülere gidin, bunları seçin ve Aç düğmesine tıklayın:

    Eklemek için görüntüleri seçme

  3. Kopyala'yıseçin, Tüm seçili dosyalar için aynı eylemi kullan'ı seçin veTamam'a tıklayın:

    Eklenen görüntüler için kopyalama eylemlerini seçme

  4. Giriş Çözüm BölmesiMainWindow.xib'e çift tıklar ve Xcode'da açın.

  5. Arabirim Hiyerarşisi'nin araç çubuğunu seçin ve öğelerden birini seçerek özelleştirme iletişim kutusunu açın.

  6. Kitaplık Denetçisi'ne bir Görüntü Araç Çubuğu Öğesi sürükleyerek araç çubuğunun İzin Verilen Araç Çubuğu Öğeleri alanına sürükleyin:

    İzin Verilen Araç Çubuğu Öğeleri alanına bir Görüntü Araç Çubuğu Öğesi Eklendiİzin Verilen Araç Çubuğu Öğeleri alanına bir Görüntü Araç Çubuğu Öğesi

  7. ÖznitelikLer Denetçisi'ninaltında, yeni eklenen görüntüyü Mac için Visual Studio:

    Araç çubuğu öğesi için özel görüntü ayarlamaAraç çubuğu öğesi için özel görüntü

  8. Etiket'i "Çöp Kutusu" ve Palet Etiketi'i "Belgeyi Sil" olarak ayarlayın:

    Araç çubuğu öğesini ayarlama Etiket ve Palet EtiketiAraç çubuğu öğesini Ayarlama Etiket ve Palet

  9. Kitaplık Denetçisi'ne bir Ayırıcı Araç Çubuğu Öğesi sürükleyerek araç çubuğunun İzin Verilen Araç Çubuğu Öğeleri alanına sürükleyin:

    İzin Verilen Araç Çubuğu Öğeleri alanına bir Ayırıcı Araç Çubuğu Öğesi eklendi İzinVerilen Araç Çubuğu Öğeleri alanına bir Ayırıcı Araç Çubuğu Öğesi

  10. Ayırıcı öğeyi ve "Çöp Kutusu" öğesini Varsayılan Araç Çubuğu Öğeleri alanına sürükleyin ve araç çubuğu öğelerinin sıralamasını soldan sağa şu şekilde ayarlayın (Renkler, Yazı Tipleri, Ayırıcı, Çöp Kutusu, Esnek Alan, Yazdırma):

    Varsayılan araç çubuğu öğeleri

  11. Değişiklikleri kaydedin ve Xcode ile Mac için Visual Studio geri dön.

Yeni araç çubuğunun varsayılan olarak görüntülendiğinden emin olmak için uygulamayı çalıştırın:

Özelleştirilmiş varsayılan öğelere sahip araç çubuğu Özelleştirilmişvarsayılan

Araç çubuğu öğelerini çıkışlar ve eylemlerle görüntüleme

Kodda bir araç çubuğuna veya araç çubuğuna erişmek için bir çıkışa veya eyleme ekli olması gerekir:

  1. Dosyanın Çözüm BölmesiMain.storyboard'a çift tıklar ve Xcode'da açın.

  2. Özel "WindowController" sınıfının Kimlik Denetçisi'nde ana pencere denetleyicisine atanmış olduğundan emin olur:

    Kimlik Denetçisi'nin pencere denetleyicisi için özel birsınıf ayarlamak üzere Kimlik Denetçisi kullanarak pencere denetleyicisi için özel bir sınıf

  3. Ardından Arabirim Hiyerarşisi'nin araç çubuğu öğesini seçin:

    Arabirim Hiyerarşisinde araç çubuğu öğesini seçmeArabirim

  4. Yardımcı Görünümü'nuaçın, WindowController.h dosyasını seçin ve araç çubuğu öğesinden WindowController.h dosyasına control-drag komutuyla sürükleyin.

  5. Bağlantı türü'leriniEylemolarak ayarlayın, Ad alanına "trashDocument" yazın ve Bağlan tıklayın:

    Araç çubuğu öğesi için eylem yapılandırmaAraç çubuğu öğesi için eylem

  6. Metin Görünümünü ViewController.h dosyasında "documentEditor" adlı bir çıkış olarak ortaya çıkarma:

    Metin görünümü için çıkış yapılandırmaMetin görünümü için çıkış

  7. Değişikliklerinizi kaydedin ve Xcode ile Mac için Visual Studio geri dönmek.

Bu Mac için Visual Studio ViewController.cs dosyasını düzenleyin ve aşağıdaki kodu ekleyin:

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

Ardından, WindowController.cs dosyasını düzenleyin ve sınıfın en altına aşağıdaki kodu ekleyin:

[Export ("trashDocument:")]
void TrashDocument (NSObject sender) {

    var controller = ContentViewController as ViewController;
    controller.EraseDocument ();
}

Uygulamayı çalıştırarak Çöp Kutusu araç çubuğu öğesi etkin olur:

Etkin bir çöp kutusu öğesi olan araç çubuğuEtkin bir çöp kutusu öğesi olan araç

Çöp Kutusu araç çubuğu öğesinin artık metin silmek için kullanıla değiştirilebilir.

Araç çubuğu öğelerini devre dışı bırakma

Araç çubuğunda bir öğeyi devre dışı bırakmak için özel bir sınıf NSToolbarItem oluşturun ve yöntemini geçersiz Validate kılın. Ardından, Interface Builder özel türü etkinleştirmek/devre dışı bırakmak istediğiniz öğeye attayabilirsiniz.

Özel bir sınıf oluşturmak NSToolbarItem için projeye sağ tıklayın ve Yeni Dosya NSToolbarItem>> Genel BoşSınıf'ıseçin, Ad alanına "ActivatableItem" yazınve Yeni düğmesine tıklayın:

Mac için Visual Studio'deboş Mac için Visual Studio

Ardından, ActivatableItem.cs dosyasını aşağıdaki gibi okumak için düzenleyin:

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

Main.storyboard'a çift tıklar ve Xcode'da açın. Yukarıda oluşturulan Çöp Kutusu araç çubuğu öğesini seçin ve Kimlik Denetçisi'nin sınıfını "ActivatableItem" olarak ayarlayın:

Araç çubuğu öğesi için özel sınıf ayarlamaBir araç çubuğu öğesi için özel sınıf

Çöp kutusu araç çubuğu trashItem öğesi için adlı trashItem çıkış oluşturun. Değişiklikleri kaydedin ve Xcode ile Mac için Visual Studio geri dön. Son olarak MainWindow.cs'yi açın ve yöntemini aşağıdaki gibi okumak için güncelleştirin:

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

    // Disable trash
    trashItem.Active = false;
}

Uygulamayı çalıştırın ve araç çubuğunda Çöp Kutusu öğesinin artık devre dışı bırakılmıştır:

Etkin olmayan çöp kutusu öğesi olan araç çubuğuDevre dışı çöp kutusu olan araç

Özet

Bu makalede, bir Xamarin.Mac uygulamasında araç çubukları ve araç çubuğu öğeleriyle çalışma hakkında ayrıntılı bir bakış sağlanmıştır. Xcode'un Interface Builder'sinde araç çubukları oluşturma ve koruma, bazı kullanıcı arabirimi denetimlerinin araç çubuğu öğeleriyle otomatik olarak nasıl çalışılır, C# kodunda araç çubuklarıyla çalışma ve araç çubuğu öğelerini etkinleştirme ve devre dışı bırakma açıklandı.