Aracılığıyla paylaş


Xamarin.Mac'te Araç Çubukları

Bu makalede, Xamarin.Mac uygulamasında araç çubuklarıyla çalışma açıklanmaktadır. Xcode ve Interface Builder'da araç çubukları oluşturma ve bakımını gerçekleştirmeyi, bunları koda maruz bırakarak ve program aracılığıyla bunlarla çalışmayı kapsar.

Mac için Visual Studio ile çalışan Xamarin.Mac geliştiricileri, araç çubuğu denetimi de dahil olmak üzere Xcode ile çalışan macOS geliştiricilerinin kullanabileceği aynı kullanıcı arabirimi denetimlerine erişebilir. Xamarin.Mac doğrudan Xcode ile tümleştirildiği için araç çubuğu öğeleri oluşturmak ve bakımını yapmak için Xcode'un Arabirim Oluşturucusu'nu kullanmak mümkündür. Bu araç çubuğu öğeleri C# dilinde de oluşturulabilir.

macOS'taki araç çubukları pencerenin üst bölümüne eklenir ve işlevleriyle ilgili komutlara kolay erişim sağlar. Araç çubukları bir uygulamanın kullanıcıları tarafından gizlenebilir, gösterilebilir veya özelleştirilebilir ve araç çubuğu öğelerini çeşitli yollarla sunabilir.

Bu makale, Xamarin.Mac uygulamasında araç çubukları ve araç çubuğu öğeleriyle çalışmanın temellerini kapsar.

Devam etmeden önce, bu kılavuz boyunca kullanılacak temel kavramları ve teknikleri kapsayan Hello, Mac makalesini (özellikle Xcode ve Interface Builder ve Outlets and Actions bölümlerine giriş) okuyun.

Ayrıca Xamarin.Mac Internals belgesinin C# sınıflarını / yöntemlerini kullanıma alma Objective-C bölümüne de göz atın. C# sınıflarını sınıflara Objective-C bağlamak için kullanılan ve Export özniteliklerini açıklarRegister.

Araç çubuklarına giriş

macOS uygulamasındaki herhangi bir pencere araç çubuğu içerebilir:

Araç çubuğu içeren örnek bir pencere

Araç çubukları, uygulamanızın kullanıcılarının önemli veya yaygın olarak kullanılan özelliklere hızla erişmesi için kolay bir yol sağlar. Örneğin, belge düzenleme uygulaması 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

    Simgeler ve metin içeren bir araç çubuğu

  2. Yalnızca Simge

    Yalnızca simge araç çubuğu

  3. Yalnızca Metin

    Yalnızca 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:

Araç çubuğunun bağlam menüsü

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

Küçük simgeler içeren bir araç çubuğu

Menü, araç çubuğunu özelleştirmeye de olanak tanır:

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

Xcode'un Arabirim Oluşturucusu'nda bir araç çubuğu ayarlarken, geliştirici varsayılan yapılandırmasının parçası olmayan ek araç çubuğu öğeleri sağlayabilir. Daha sonra uygulamanın kullanıcıları araç çubuğunu özelleştirerek bu önceden tanımlanmış öğeleri gerektiği gibi ekleyip kaldırabilir. Elbette araç çubuğu varsayılan yapılandırmasına sıfırlanabilir.

Araç çubuğu otomatik olarak Görünüm menüsüne bağlanarak kullanıcıların bunu gizlemesine, göstermesine ve özelleştirmesine olanak tanır:

Görünüm menüsünde araç çubuğuyla ilgili öğeler

Daha fazla ayrıntı için Yerleşik Menü İşlevselliği belgelerine bakın.

Ayrıca, araç çubuğu Arabirim Oluşturucusu'nda düzgün yapılandırıldıysa, uygulama araç çubuğu özelleştirmelerini uygulamanın birden çok başlatmasında otomatik olarak kalıcı hale getirebilir.

Bu kılavuzun sonraki bölümlerinde, Xcode'un Arabirim Oluşturucusu ile araç çubukları oluşturma ve koruma ve bunlarla kod içinde çalışma açıklanmaktadır.

Özel bir ana pencere denetleyicisi ayarlama

Kullanıcı arabirimi öğelerini çıkışlar ve eylemler aracılığıyla C# koduna göstermek için Xamarin.Mac uygulamasının özel bir pencere denetleyicisi kullanması gerekir:

  1. Xcode'un Arabirim Oluşturucusu'nda uygulamanın görsel taslaklarını açın.

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

  3. Kimlik Denetçisi'ne geçin ve Sınıf Adı olarak "WindowController" girin:

    Pencere denetleyicisi için özel bir sınıf adı ayarlama

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

  5. Projenize Mac için Visual Studio Çözüm Bölmesi'nde bir WindowController.cs dosyası eklenir:

    Çözüm Bölmesi'nde WindowController.cs seçme

  6. Xcode'un Interface Builder'ında görsel şeridi yeniden açın.

  7. WindowController.h dosyası kullanılabilir:

    WindowController.h dosyası

Xcode'da araç çubukları oluşturma ve koruma

Araç çubukları, Xcode'un Arabirim Oluşturucusu ile oluşturulur ve korunur. Bir uygulamaya araç çubuğu eklemek için, Çözüm Bölmesi'nde çift tıklayarak uygulamanın birincil görsel şeridini (bu örnekte Main.storyboard) düzenleyin:

Çözüm Bölmesi'nde Main.storyboard'un açılması

Kitaplık Denetçisi'nde, kullanılabilir araç çubuğu öğelerinin tümünü görmeyi kolaylaştırmak için Arama Kutusu'na "araç" yazın:

Araç çubuğu öğelerini gösterecek şekilde filtrelenmiş Kitaplık Denetçisi

Arabirim Düzenleyicisi'ndeki pencereye bir araç çubuğu sürükleyin. Araç çubuğu seçili durumdayken Öznitelikler Denetçisi'nde özellikleri ayarlayarak bu araç çubuğunun davranışını yapılandırın:

Araç çubuğu için Öznitelik Denetçisi

Aşağıdaki özellikler kullanılabilir:

  1. Görüntüleme - Araç çubuğunun simgeleri, metni veya her ikisini birden görüntüleyip görüntülemediğini denetler
  2. Başlatmada Görünür - Seçiliyse, araç çubuğu varsayılan olarak görünür durumdadır.
  3. Özelleştirilebilir - Seçiliyse, kullanıcılar araç çubuğunu düzenleyebilir ve özelleştirebilir.
  4. Ayırıcı - Seçiliyse, ince bir yatay çizgi araç çubuğunu pencerenin içeriğinden ayırır.
  5. Boyut - Araç çubuğunun boyutunu ayarlar
  6. Otomatik kaydetme - Seçiliyse, uygulama bir kullanıcının araç çubuğu yapılandırma değişiklikleri uygulama başlatmaları arasında kalıcı olur.

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

Arabirim Hiyerarşisi'nde araç çubuğunu açtıktan sonra bir araç çubuğu öğesi seçerek özelleştirme iletişim kutusunu açın:

Araç çubuğunu özelleştirme

Araç çubuğunun zaten 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çebilecekleri ek araç çubuğu öğeleri sağlamak için bu iletişim kutusunu kullanın. Araç çubuğuna öğe eklemek için, bunları Kitaplık Denetçisi'nden sürükleyin:

Kitaplık Denetçisi

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

  • Görüntü Araç Çubuğu Öğesi - Simge olarak özel görüntü içeren bir araç çubuğu öğesi.

  • Esnek Alan Araç Çubuğu Öğesi - Sonraki araç çubuğu öğelerini iki yana yaslamada kullanılan esnek alan. Örneğin, bir veya daha fazla araç çubuğu öğesinin ardından esnek bir boşluk araç çubuğu öğesi ve başka bir araç çubuğu öğesi son öğeyi araç çubuğunun sağ tarafına sabitler.

  • 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 ayırıcı

  • Araç Çubuğu Öğesini Özelleştir - Kullanıcıların araç çubuğunu özelleştirmesine izin verir

  • Araç Çubuğu Öğesini Yazdır - Kullanıcıların açık belgeyi yazdırmasına izin verir

  • Renkler Araç Çubuğu Öğesini Göster - Standart sistem renk seçicisini görüntüler:

    Sistem renk seçicisi

  • Yazı Tipi Araç Çubuğu Öğesini Göster - Standart sistem yazı tipi iletişim kutusunu görüntüler:

    Yazı tipi seçici

Önemli

Daha sonra da görüleceği gibi, 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.

Araç çubuğuna öğe ekleme

Araç çubuğuna öğe eklemek için Arabirim Hiyerarşisi'nde araç çubuğunu seçin ve öğelerinden birine tıklayarak özelleştirme iletişim kutusunun görünmesine neden olun. Ardından, Kitaplık Denetçisi'nden yeni bir öğeyi İzin Verilen Araç Çubuğu Öğeleri alanına sürükleyin:

Araç çubuğu özelleştirme iletişim kutusundaki İzin Verilen Araç Çubuğu Öğeleri

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

Araç çubuğu öğesini sürükleyerek yeniden sıralama

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

Ardından, öğenin varsayılan özelliklerini ayarlamak için Öznitelikler Denetçisi'ni kullanın:

Öznitelik Denetçisi'ni kullanarak araç çubuğu öğesini özelleştirme

Aşağıdaki özellikler kullanılabilir:

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

Önemli

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

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'nde araç çubuğunu açın ve özelleştirme iletişim kutusunu açmak için bir araç çubuğu öğesi seçin. Bir Arama Alanını Kitaplık Denetçisi'nden İzin Verilen Araç Çubuğu Öğeleri alanına sürükleyin:

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

Burada, arama alanını yapılandırmak ve bir eylem veya çıkış aracılığıyla koda göstermek için Arabirim Oluşturucusu'nu kullanın.

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

Birkaç Cocoa kullanıcı arabirimi öğesi varsayılan olarak standart araç çubuğu öğeleriyle etkileşim kurar. Örneğin, metin görünümünü uygulamanın penceresine sürükleyin ve içerik alanını dolduracak şekilde konumlandırın:

Uygulamaya metin görünümü ekleme

Belgeyi kaydedin, Xcode ile eşitlemek için Mac için Visual Studio dönün, uygulamayı çalıştırın, metin girin, seçin ve Renkler araç çubuğu öğesine tıklayın. Metin görünümünün renk seçiciyle otomatik olarak çalıştığına dikkat edin:

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

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

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

  1. Mac için Visual Studio Çözüm Bölmesi'nde Kaynaklar klasörüne sağ tıklayın ve Dosya Ekle'yi>seçin.

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

    Eklenecek görüntüleri seçme

  3. Kopyala'yı seçin, Seçili tüm dosyalar için aynı eylemi kullan'ı işaretleyin ve Tamam'a tıklayın:

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

  4. Çözüm Bölmesi'nde MainWindow.xib'ye çift tıklayarak Xcode'da açın.

  5. Arabirim Hiyerarşisi'nde araç çubuğunu seçin ve özelleştirme iletişim kutusunu açmak için öğelerinden birine tıklayın.

  6. Resim Araç Çubuğu Öğesini Kitaplık Denetçisi'nden araç çubuğunun İzin Verilen Araç Çubuğu Öğeleri alanına sürükleyin:

    İzin Verilen Araç Çubuğu Öğeleri alanına bir Resim Araç Çubuğu Öğesi eklendi

  7. Öznitelik Denetçisi'nde, Mac için Visual Studio yeni eklenen görüntüyü seçin:

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

  8. Etiketi "Çöp Sepeti" ve Palet Etiketi'ni "Belgeyi Sil" olarak ayarlayın:

    Etiket ve Palet Etiketi araç çubuğu öğesini ayarlama

  9. Kitaplık Denetçisi'nden Bir Ayırıcı Araç Çubuğu Öğesi'ni 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

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

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

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

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

Özelleştirilmiş varsayılan öğeler içeren bir araç çubuğu

Araç çubuğu öğelerini çıkışlar ve eylemlerle gösterme

Koddaki bir araç çubuğuna veya araç çubuğu öğesine erişmek için bir çıkışa veya eyleme eklenmelidir:

  1. Çözüm Bölmesi'nde Main.storyboard'a çift tıklayarak Xcode'da açın.

  2. "WindowController" özel sınıfının Kimlik Denetçisi'ndeki ana pencere denetleyicisine atandığından emin olun:

    Pencere denetleyicisi için özel bir sınıf ayarlamak için Kimlik Denetçisi'ni kullanma

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

    Arabirim Hiyerarşisi'nde araç çubuğu öğesini seçme

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

  5. Bağlan ion türünü Eylem olarak ayarlayın, Ad için "trashDocument" yazın ve Bağlan düğmesine tıklayın:

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

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

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

  7. Değişikliklerinizi kaydedin ve Xcode ile eşitlemek için Mac için Visual Studio dönün.

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 WindowController aşağıdaki kodu ekleyin:

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

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

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

Etkin çöp kutusu öğesini içeren araç çubuğu

Çöp Kutusu araç çubuğu öğesinin artık metin silmek için kullanılabildiğini unutmayın.

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

Araç çubuğundaki bir öğeyi devre dışı bırakmak için özel NSToolbarItem bir sınıf oluşturun ve yöntemini geçersiz kılın Validate . Ardından, Arabirim Oluşturucusu'nda, etkinleştirmek/devre dışı bırakmak istediğiniz öğeye özel türü atayın.

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

Mac için Visual Studio boş bir sınıf ekleme

Ardından, ActivatableItem.cs dosyasını aşağıdaki gibi okuyacak şekilde 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ıklayarak Xcode'da açın. Yukarıda oluşturulan Çöp Kutusu araç çubuğu öğesini seçin ve Kimlik Denetçisi'nde sınıfını "ActivatableItem" olarak değiştirin:

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

Çöp Kutusu araç çubuğu öğesi için adlı trashItem bir çıkış oluşturun. Değişiklikleri kaydedin ve Xcode ile eşitlemek için Mac için Visual Studio dönün. Son olarak, MainWindow.cs açın ve yöntemini aşağıdaki gibi okuyacak şekilde güncelleştirinAwakeFromNib:

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

    // Disable trash
    trashItem.Active = false;
}

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

Etkin olmayan çöp kutusu öğesini içeren araç çubuğu

Özet

Bu makalede, Xamarin.Mac uygulamasında araç çubukları ve araç çubuğu öğeleriyle çalışma konusuna ayrıntılı bir bakış verilmiştir. Burada, Xcode'un Arabirim Oluşturucusu'nda araç çubuklarının nasıl oluşturulacağı ve korunacağı, bazı kullanıcı arabirimi denetimlerinin araç çubuğu öğeleriyle otomatik olarak nasıl çalıştığı, C# kodunda araç çubuklarıyla nasıl çalışacağı ve araç çubuğu öğelerinin nasıl etkinleştirileceği ve devre dışı bırakıldığı açıklanmıştır.