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ç ç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:
Simge ve Metin
Yalnızca Simge
Yalnızca Metin
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ğunu daha küçük bir boyutta görüntülemek için aynı menüyü kullanın:
Menü, araç çubuğunu özelleştirmeye de olanak tanır:
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:
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:
Xcode'un Arabirim Oluşturucusu'nda uygulamanın görsel taslaklarını açın.
Tasarım yüzeyindeki pencere denetleyicisini seçin.
Kimlik Denetçisi'ne geçin ve Sınıf Adı olarak "WindowController" girin:
Değişikliklerinizi kaydedin ve eşitlemek için Mac için Visual Studio dönün.
Projenize Mac için Visual Studio Çözüm Bölmesi'nde bir WindowController.cs dosyası eklenir:
Xcode'un Interface Builder'ında görsel şeridi yeniden açın.
WindowController.h dosyası kullanılabilir:
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:
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:
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:
Aşağıdaki özellikler kullanılabilir:
- Görüntüleme - Araç çubuğunun simgeleri, metni veya her ikisini birden görüntüleyip görüntülemediğini denetler
- Başlatmada Görünür - Seçiliyse, araç çubuğu varsayılan olarak görünür durumdadır.
- Özelleştirilebilir - Seçiliyse, kullanıcılar araç çubuğunu düzenleyebilir ve özelleştirebilir.
- Ayırıcı - Seçiliyse, ince bir yatay çizgi araç çubuğunu pencerenin içeriğinden ayırır.
- Boyut - Araç çubuğunun boyutunu ayarlar
- 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ğ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:
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:
Yazı Tipi Araç Çubuğu Öğesini Göster - Standart sistem yazı tipi iletişim kutusunu görüntüler:
Ö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:
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:
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:
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:
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:
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:
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:
Mac için Visual Studio Çözüm Bölmesi'nde Kaynaklar klasörüne sağ tıklayın ve Dosya Ekle'yi>seçin.
Dosya Ekle iletişim kutusunda istediğiniz resimlere gidin, bunları seçin ve Aç düğmesine tıklayın:
Kopyala'yı seçin, Seçili tüm dosyalar için aynı eylemi kullan'ı işaretleyin ve Tamam'a tıklayın:
Çözüm Bölmesi'nde MainWindow.xib'ye çift tıklayarak Xcode'da açın.
Arabirim Hiyerarşisi'nde araç çubuğunu seçin ve özelleştirme iletişim kutusunu açmak için öğelerinden birine tıklayın.
Resim Araç Çubuğu Öğesini Kitaplık Denetçisi'nden araç çubuğunun İzin Verilen Araç Çubuğu Öğeleri alanına sürükleyin:
Öznitelik Denetçisi'nde, Mac için Visual Studio yeni eklenen görüntüyü seçin:
Etiketi "Çöp Sepeti" ve Palet Etiketi'ni "Belgeyi Sil" olarak ayarlayın:
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:
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):
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:
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:
Çözüm Bölmesi'nde Main.storyboard'a çift tıklayarak Xcode'da açın.
"WindowController" özel sınıfının Kimlik Denetçisi'ndeki ana pencere denetleyicisine atandığından emin olun:
Ardından, Arabirim Hiyerarşisi'nde araç çubuğu öğesini seçin:
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.
Bağlan ion türünü Eylem olarak ayarlayın, Ad için "trashDocument" yazın ve Bağlan düğmesine tıklayın:
Metin Görünümünü ViewController.h dosyasında "documentEditor" adlı bir çıkış olarak kullanıma sunma:
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:
Çö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:
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:
Çö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:
Ö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.