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:
Bir 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:
Simge ve metin
SimgelerYalnızca simge
Yalnızca simge araç çubuğu bir Yalnızca metin
Salt 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ğu , bağlam menüsü
Araç çubuğunu daha küçük bir boyutta göstermek için aynı menüyü kullanın:
Küçük simgelerle, çubuğu
Menü araç çubuğunu özelleştirmeye de izin verir:
ö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.
Gö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:
Uygulamanın film şeridini Xcode Interface Builder içinde açın.
Tasarım yüzeyinde pencere denetleyicisini seçin.
Kimlik denetçisi ' ne geçin ve sınıf adıolarak "windowcontroller" yazın:
değişikliklerinizi kaydedin ve eşitlemek için Mac için Visual Studio geri dönün.
Mac için Visual Studio içindeki Çözüm Bölmesi projenize bir windowcontroller. cs dosyası eklenecektir:
Çözüm Bölmesi windowcontroller. cs ' nin seçilmesi ' deFilm şeridini Xcode Interface Builder yeniden açın.
Windowcontroller. h dosyası kullanıma sunulacaktır:
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:
. 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:
Kitaplı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:
çubuğu için öznitelikler denetçisi denetçisi
Aşağıdaki özellikler mevcuttur:
- Görüntüle -araç çubuğunun simgeler, metin veya her ikisini de görüntüleyip görüntülemediğini denetler
- Başlatma sırasında görünür -seçilirse, araç çubuğu varsayılan olarak görünür.
- Özelleştirilebilir -seçilirse, kullanıcılar araç çubuğunu düzenleyebilir ve özelleştirebilir.
- Ayırıcı -seçildiyse, ince yatay bir çizgi araç çubuğunu pencerenin içeriğiyle ayırır.
- Boyut -araç çubuğunun boyutunu ayarlar
- 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:
Araç
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:

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:
Sistem 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:
Araç ç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:
Bir 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:
Ö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
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:
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:
yerleş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:
Bu Mac için Visual Studio, Çözüm BölmesiKaynaklar klasörüne sağ tıklayın ve Dosya Ekle'yiseçin.
Dosya Ekle iletişim kutusunda istediğiniz görüntülere gidin, bunları seçin ve Aç düğmesine tıklayın:
Kopyala'yıseçin, Tüm seçili dosyalar için aynı eylemi kullan'ı seçin veTamam'a tıklayın:

Giriş Çözüm BölmesiMainWindow.xib'e çift tıklar ve Xcode'da açın.
Arabirim Hiyerarşisi'nin araç çubuğunu seçin ve öğelerden birini seçerek özelleştirme iletişim kutusunu açın.
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Ö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üEtiket'i "Çöp Kutusu" ve Palet Etiketi'i "Belgeyi Sil" olarak ayarlayın:
Araç çubuğu öğesini Ayarlama Etiket ve PaletKitaplı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:
Verilen Araç Çubuğu Öğeleri alanına bir Ayırıcı Araç Çubuğu ÖğesiAyı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):

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:
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:
Dosyanın Çözüm BölmesiMain.storyboard'a çift tıklar ve Xcode'da açın.
Özel "WindowController" sınıfının Kimlik Denetçisi'nde ana pencere denetleyicisine atanmış olduğundan emin olur:
sınıf ayarlamak üzere Kimlik Denetçisi kullanarak pencere denetleyicisi için özel bir sınıfArdından Arabirim Hiyerarşisi'nin araç çubuğu öğesini seçin:
ArabirimYardı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.
Bağlantı türü'leriniEylemolarak ayarlayın, Ad alanına "trashDocument" yazın ve Bağlan tıklayın:
Metin Görünümünü ViewController.h dosyasında "documentEditor" adlı bir çıkış olarak ortaya çıkarma:
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ç
Çö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:
boş 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:
Bir 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:
Devre 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ı.
Pencere denetleyicisi için özel bir ayarlama ayarlama
Windowcontroller. h dosyası

Araç çubuğu öğesi için eylem
Metin görünümü için çıkış