Xamarin. Mac içindeki standart denetimler
Bu makalede, bir Xamarin. Mac uygulamasındaki düğmeler, Etiketler, metin alanları, onay kutuları ve kesimli denetimler gibi standart AppKit denetimleriyle çalışma ele alınmaktadır. Interface Builder olan bir arabirime ekleme ve kod içinde bunlarla etkileşim kurma işlemini açıklar.
Bir Xamarin. Mac uygulamasında C# ve .NET ile çalışırken, Objective-C ve Objective-C üzerinde çalışan bir geliştiricinin de aynı appkit denetimlerine erişebilirsiniz. Xamarin. Mac doğrudan Xcode ile tümleştiğinden, Appkit denetimlerinizi oluşturmak ve sürdürmek için Xcode 'un Interface Builder kullanabilirsiniz (ya da isteğe bağlı olarak bunları doğrudan C# kodunda oluşturabilirsiniz).
AppKit denetimleri, Xamarin. Mac uygulamanızın kullanıcı arabirimini oluşturmak için kullanılan UI öğeleridir. Bunlar düğmeler, Etiketler, metin alanları, onay kutuları ve kesimli denetimler gibi öğelerden oluşur ve Kullanıcı bunları yaptıkları zaman anında eylemlere veya görünür sonuçlara neden olur.
Bu makalede, bir Xamarin. Mac uygulamasındaki AppKit denetimleriyle çalışmanın temelleri ele alınacaktır. Bu makalede kullanacağımız temel kavramları ve teknikleri kapsadığından, ilk olarak Hello, Mac makalesi, özellikle de xcode ve Interface Builder ve diğer ve eylemler bölümlerine giriş yapmanız önerilir.
Exposing C# classes / methods to Objective-CExposing C# classes / methods to Objective-C belgesinin bölümüne de göz atmak Isteyebilirsiniz, RegisterExport C# sınıflarınızı Objective-C nesneler ve Kullanıcı Arabirimi öğelerine bağlamak için kullanılan ve komutlarını açıklamaktadır.
Denetimlere ve görünümlere giriş
macOS (eskiden Mac OS X olarak bilinirdi), AppKit çerçevesi aracılığıyla standart bir kullanıcı arabirimi denetimleri kümesi sağlar. Bunlar düğmeler, Etiketler, metin alanları, onay kutuları ve kesimli denetimler gibi öğelerden oluşur ve Kullanıcı bunları yaptıkları zaman anında eylemlere veya görünür sonuçlara neden olur.
Tüm AppKit denetimlerinde, çoğu kullanım için uygun olan standart ve yerleşik bir görünüm vardır. bazıları, bir pencere çerçevesi alanında veya bir araç çubuğu alanında ya da bir bildirim Merkezi pencere öğesinde olduğu gibi bir Vibrance efekt bağlamında kullanılmak üzere alternatif bir görünüm belirler.
Apple, AppKit denetimleriyle çalışırken aşağıdaki yönergeleri önerir:
- Denetim boyutlarını aynı görünümde karıştırmaktan kaçının.
- Genel olarak, denetimleri dikey olarak yeniden boyutlandırmaktan kaçının.
- Bir denetim içindeki sistem yazı tipini ve uygun metin boyutunu kullanın.
- Denetimler arasındaki uygun aralığı kullanın.
Daha fazla bilgi için, Apple 'ın OS X ınsan arabirimi yönergelerinindenetimleri ve görünümleri hakkında bölümüne bakın.
Pencere çerçevesindeki denetimleri kullanma
Bir pencerenin çerçeve alanına dahil olmasına izin veren bir görüntüleme stili içeren AppKit denetimlerinin bir alt kümesi vardır. Örneğin, posta uygulamasının araç çubuğuna bakın:
- Basamaklı dokulu düğme -a stili
NSTexturedRoundedBezelStyle. - Dokulu yuvarlatılmış bölünmüş denetim -a stili
NSSegmentStyleTexturedRounded. - Dokulu yuvarlatılmış bölünmüş denetim -a stili
NSSegmentStyleSeparated. - Stili Pop-Up menü - , stili olan yuvarlak dokulu
NSTexturedRoundedBezelStyle. - Stili Drop-Down menü - , stili olan yuvarlak dokulu
NSTexturedRoundedBezelStyle. - Arama çubuğu -A .
Apple, bir pencere çerçevesinde AppKit denetimleriyle çalışırken aşağıdaki yönergeleri önerir:
- Pencere gövdesinde pencere çerçevesine özgü denetim stillerini kullanmayın.
- Pencere çerçevesindeki pencere gövde denetimlerini veya stillerini kullanmayın.
Daha fazla bilgi için, Apple 'ın OS X ınsan arabirimi yönergelerinindenetimleri ve görünümleri hakkında bölümüne bakın.
Interface Builder bir kullanıcı arabirimi oluşturma
Yeni bir Xamarin. Mac Cocoa uygulaması oluşturduğunuzda, varsayılan olarak standart bir boş pencere alırsınız. Bu pencereler .storyboard projeye otomatik olarak dahil edilen bir dosyada tanımlanmıştır. Windows tasarımınızı düzenlemek için, Çözüm Gezginidosyasına çift tıklayın :
Bu, Xcode 'un Interface Builder pencere tasarımını açar:
Kullanıcı arabiriminizi oluşturmak için, Kullanıcı arabirimi öğelerini (AppKit denetimleri) kitaplık denetçisinden Interface Builder Içindeki arabirim düzenleyicisine sürükleyin. Aşağıdaki örnekte, bir Dikey bölünmüş görünüm denetimi, kitaplık denetçisinden Ilaç ve arabirim düzenleyicisindepencereye yerleştirildi:
Interface Builder bir kullanıcı arabirimi oluşturma hakkında daha fazla bilgi için lütfen bkz. Xcode ve Interface Builder belgelerine giriş .
Boyutlandırma ve konumlandırma
Kullanıcı arabirimine bir denetim eklendikten sonra, konum ve boyutunu değerleri el ile girerek ve üst pencere ya da görünüm yeniden boyutlandırıldığında denetimin otomatik olarak nasıl konumlandığını ve boyutlandırılacağını denetlemek için kısıtlama Düzenleyicisi 'ni kullanın:
Belirli bir (x, y) konumuna bir denetim eklemek için,oto yeniden boyutlandırma kutusunun dışında kırmızı ı-PM 'leri kullanın. Örnek:
Seçili denetimin ( hiyerarşi görünümüarabirim Düzenleyicisi'nde) pencerenin üst ve sağ konumuna takılabileceğini veya yeniden boyutlandırıldığı veya taşındığı şekliyle görünümün doğru olacağını belirtir.
Düzenleyici denetim özelliklerinin yükseklik ve genişlik gibi diğer öğeleri:
Ayrıca, Hizalama düzenleyicisinikullanarak kısıtlamaların bulunduğu öğelerin hizalamasını kontrol edebilirsiniz:
Önemli
(0, 0), ekranın sol üst köşesi olan iOS 'tan farklı olarak, macOS (0, 0) içinde sol alt köşede bulunur. Bunun nedeni, macOS değerinin değer artarak sağa ve sağa doğru sayı değerleriyle bir matematik koordinat sistemi kullanması nedeniyle oluşur. Kullanıcı arabirimine AppKit denetimleri yerleştirirken bunu dikkate almanız gerekir.
Özel bir sınıf ayarlama
AppKit denetimleriyle çalışırken, alt sınıfa ve var olan denetime ihtiyacınız olacak ve bu sınıfın özel bir sürümünü oluşturmanız gereken durumlar vardır. Örneğin, kaynak listesinin özel bir sürümünü tanımlama:
using System;
using AppKit;
using Foundation;
namespace AppKit
{
[Register("SourceListView")]
public class SourceListView : NSOutlineView
{
#region Computed Properties
public SourceListDataSource Data {
get {return (SourceListDataSource)this.DataSource; }
}
#endregion
#region Constructors
public SourceListView ()
{
}
public SourceListView (IntPtr handle) : base(handle)
{
}
public SourceListView (NSCoder coder) : base(coder)
{
}
public SourceListView (NSObjectFlag t) : base(t)
{
}
#endregion
#region Override Methods
public override void AwakeFromNib ()
{
base.AwakeFromNib ();
}
#endregion
#region Public Methods
public void Initialize() {
// Initialize this instance
this.DataSource = new SourceListDataSource (this);
this.Delegate = new SourceListDelegate (this);
}
public void AddItem(SourceListItem item) {
if (Data != null) {
Data.Items.Add (item);
}
}
#endregion
#region Events
public delegate void ItemSelectedDelegate(SourceListItem item);
public event ItemSelectedDelegate ItemSelected;
internal void RaiseItemSelected(SourceListItem item) {
// Inform caller
if (this.ItemSelected != null) {
this.ItemSelected (item);
}
}
#endregion
}
}
Yönergesinin, [Register("SourceListView")]SourceListViewObjective-C ' Interface Builder de kullanılabilmesi için sınıfı kullanıma sunduğunu gösterir. Daha fazla bilgi için lütfen Exposing C# classes / methods to Objective-CExposing C# classes / methods to Objective-C belgesi bölümüne bakın RegisterExport . C# sınıflarınızı Objective-C nesneler ve UI öğelerine bağlamak için kullanılan komutları açıklar.
Yukarıdaki kod yerine, genişletirken genişletilen temel türün bir AppKit denetimini, tasarım yüzeyine (aşağıdaki örnekte, bir kaynak listesi) sürükleyebilirsiniz, kimlik denetçisi ' ne geçin ve özel sınıfı , üzerinde gösterilen ada ayarlayabilirsiniz (örnek ):
Aykırı Izin ve eylemleri gösterme
C# kodunda AppKit denetimine erişilebilmesi için önce bir priz ya da eylemolarak sunulmalıdır. Bunu yapmak için, arabirim hiyerarşisinde veya arabirim düzenleyicisinde verilen denetimi seçin ve yardımcı görünümüne geçin (bir pencerenizin düzenleme için seçili olduğundan emin olun):
Denetim- .h bir .h veya eylemoluşturmaya başlamak için appkit denetiminden verme dosyasına sürükleyin:
Oluşturulacak pozlama türünü seçin ve Çıkış ya da eyleme bir adverin:
Özet ve eylemlerleçalışma hakkında daha fazla bilgi Için, bkz. Xcode ve Interface Builder belgelerine giriş konusundaki aykırı izin ve eylemler bölümü.
Değişiklikleri Xcode ile eşitleme
xcode 'dan Mac için Visual Studio 'a geri döndüğünüzde, xcode 'da yaptığınız tüm değişiklikler otomatik olarak Xamarin. Mac projenizle eşitlenir.
Çözüm Gezgini öğesini seçerseniz, SplitViewController.designer.csÇıkış ve SplitViewController.designer.cseyleminizi C# kodumuza nasıl yedeklerimizi görebileceksiniz:
Dosyadaki tanımın nasıl yapıldığını fark edin SplitViewController.designer.cs :
[Outlet]
AppKit.NSSplitViewItem LeftController { get; set; }
[Outlet]
AppKit.NSSplitViewItem RightController { get; set; }
[Outlet]
AppKit.NSSplitView SplitView { get; set; }
MainWindow.hDosyadaki tanımı Xcode 'da olacak şekilde ayarlayın:
@interface SplitViewController : NSSplitViewController {
NSSplitViewItem *_LeftController;
NSSplitViewItem *_RightController;
NSSplitView *_SplitView;
}
@property (nonatomic, retain) IBOutlet NSSplitViewItem *LeftController;
@property (nonatomic, retain) IBOutlet NSSplitViewItem *RightController;
@property (nonatomic, retain) IBOutlet NSSplitView *SplitView;
görebileceğiniz gibi, dosyadaki değişiklikleri dinler Mac için Visual Studio .h ve ardından bu değişiklikleri .designer.cs uygulamanızda kullanıma sunmak için ilgili dosyada otomatik olarak eşitler. ayrıca SplitViewController.designer.cs kısmi bir sınıf olduğunu fark edebilirsiniz. bu sayede, Mac için Visual Studio değiştirmek zorunda değildir ve bu da SplitViewController.cs sınıfa yaptığımız değişikliklerin üzerine yazılacak.
Normalde SplitViewController.designer.cs kendi kendinize açmanız gerekmez, burada yalnızca eğitim amaçlarıyla sunulmuştur.
Önemli
çoğu durumda Mac için Visual Studio, xcode 'da yapılan değişiklikleri otomatik olarak görür ve bunları Xamarin. Mac projeniz ile eşitler. eşitlemenin otomatik olarak gerçekleşmediğini devre dışı bırakmak için, tekrar tekrar Mac için Visual Studio tekrar tekrar tekrar edin. Bu, normalde bir eşitleme döngüsünü devre dışı bırakır.
Düğmelerle çalışma
AppKit, Kullanıcı arabirimi tasarımınızda kullanılabilecek çeşitli türlerde düğme sağlar. Daha fazla bilgi için lütfen Apple 'ın OS X ınsan arabirimi yönergelerineait düğmeler bölümüne bakın.
Bir düğme bir prizaracılığıyla sunulduğunda, aşağıdaki kod basılmakta olan öğesine yanıt verir:
ButtonOutlet.Activated += (sender, e) => {
FeedbackLabel.StringValue = "Button Outlet Pressed";
};
Eylemleraracılığıyla kullanıma sunulan düğmeler Için, Xcode 'da seçtiğiniz adla sizin için otomatik olarak bir yöntem oluşturulur. Eylemeyanıt vermek Için, işlemin tanımlandığı sınıftaki kısmi yöntemi doldurun. Örnek:
partial void ButtonAction (Foundation.NSObject sender) {
// Do something in response to the Action
FeedbackLabel.StringValue = "Button Action Pressed";
}
Durumu (Açık ve Kapalı gibi)olan düğmeleriçin durum, numaraya göre denetlenir veya özelliğiyle birlikte ayarlanır. Örnek:
DisclosureButton.Activated += (sender, e) => {
LorumIpsum.Hidden = (DisclosureButton.State == NSCellStateValue.On);
};
Nerede NSCellStateValue olabilir:
- On - Düğme itilir veya denetim seçilidir (örneğin, onay kutusunda bir onay işareti).
- Kapalı - Düğme atlanmaz veya denetim seçilmez.
- Karma : On ve Off eyaletlerininkarışımı.
Bir Düğmeyi Varsayılan Olarak İşaretle ve Anahtar Eşdeğerini Ayarla
Kullanıcı arabirimi tasarımına ekley istediğiniz herhangi bir düğme için, kullanıcı klavyede Return/Enter tuşuna basıldığında etkinleştirilen Varsayılan düğme olarak işaretlayabilirsiniz. macOS'ta bu düğme varsayılan olarak mavi bir arka plan rengi alır.
Bir düğmeyi varsayılan olarak ayarlamak için Xcode'un Interface Builder. Ardından, Öznitelik Denetçisi'ninAnahtar Eşdeğeri alanını seçin ve Return/Enter tuşuna basın:
Aynı şekilde, fare yerine klavyeyi kullanarak düğmeyi etkinleştirmek için kullanılan herhangi bir tuş dizisi atabilirsiniz. Örneğin, yukarıdaki görüntüde Command-C tuşlarına basarak.
Uygulama çalıştırıldığında ve Düğmeli Pencere Anahtar ve Odaklı olduğunda, kullanıcı Command-C tuşuna basarsa düğmenin Eylemi etkinleştirilir (kullanıcı düğmeye tıklamış gibi).
Onay Kutuları ve Radyo Düğmeleriyle Çalışma
AppKit, Kullanıcı Arabirimi Design uygulamanıza ek olarak çeşitli onay kutuları ve Radyo Düğmesi Grupları sağlar. Daha fazla bilgi için lütfen Apple'ın OS X İnsan Arabirimi Yönergeleri'nin Düğmeler bölümüne bakın.
Onay kutuları ve Radyo Düğmelerinin (Çıkışlararacılığıyla kullanıma açık) durumu (Açık ve Kapalı gibi) vardır; durum, numaraya göre denetlenir veya özelliğiyle birlikte ayarlanır. Örnek:
AdjustTime.Activated += (sender, e) => {
FeedbackLabel.StringValue = string.Format("Adjust Time: {0}",AdjustTime.State == NSCellStateValue.On);
};
Nerede NSCellStateValue olabilir:
- On - Düğme itilir veya denetim seçilidir (örneğin, onay kutusunda bir onay işareti).
- Kapalı - Düğme atlanmaz veya denetim seçilmez.
- Karma : On ve Off eyaletlerininkarışımı.
Radyo Düğmesi Grubunda bir düğme seçmek için Radyo Düğmesini bir Çıkış olarak göstermek ve özelliğini ayarlamak için kullanın. Örneğin:
partial void SelectCar (Foundation.NSObject sender) {
TransportationCar.State = NSCellStateValue.On;
FeedbackLabel.StringValue = "Car Selected";
}
Bir grup gibi davranacak radyo düğmeleri koleksiyonunu almak ve seçilen durumu otomatik olarak işlemek için yeni bir Eylem oluşturun ve gruptaki her düğmeyi buna iliştirin:

Ardından, Öznitelik Tag Denetçisi'nin her radyo düğmesine benzersiz Tag

Değişikliklerinizi kaydedin ve Mac için Visual Studio geri dönüp tüm radyo düğmelerinin bağlı olduğu Eylemi işlemek için kodu ekleyin:
partial void NumberChanged(Foundation.NSObject sender)
{
var check = sender as NSButton;
Console.WriteLine("Changed to {0}", check.Tag);
}
Hangi radyo Tag düğmesinin seçili olduğunu görmek için özelliğini kullanabilirsiniz.
Menü Denetimleriyle Çalışma
AppKit, Kullanıcı Arabirimi Design uygulamanıza ekleyebilirsiniz. Daha fazla bilgi için lütfen Apple'ın OS Xİnsan Arabirimi Yönergeleri'nin Menü Denetimleri bölümüne bakın.
Menü Denetimi Verilerini Sağlama
macOS için kullanılabilen Menü Denetimleri, açılan listeyi bir iç listeden (Interface Builder önceden tanımlanmış veya kod aracılığıyla doldurulabilir) ya da kendi özel, dış veri kaynağınızı sağlayarak doldurabilir.
İç Verilerle Çalışma
Interface Builder'da öğe tanımlamaya ek olarak, Menü Denetimleri (örneğin), sürdürtükleri iç listeden öğeleri eklemenize, Düzenlemenize veya Silmenize olanak sağlayan eksiksiz bir NSComboBox yöntem kümesi sağlar:
Add- Listenin sonuna yeni bir öğe ekler.GetItem- Verilen dizinde öğeyi döndürür.Insert- Verilen konumdaki listeye yeni bir öğe ekler.IndexOf- Verilen öğenin dizinini döndürür.Remove- Verilen öğeyi listeden kaldırır.RemoveAll- Tüm öğeleri listeden kaldırır.RemoveAt- Belirtilen dizinde öğeyi kaldırır.Count- Listede yer alan öğe sayısını döndürür.
Önemli
Extern Veri Kaynağı () kullanıyorsanız, yukarıdaki yöntemlerden herhangi UsesDataSource = true birini çağırmanız bir özel durum oluşturur.
Dış Veri Kaynağıyla Çalışma
Menü Denetiminizin satırlarını sağlamak için yerleşik İç Verileri kullanmak yerine, isteğe bağlı olarak bir Dış Veri Kaynağı kullanabilir ve öğeler için kendi destek depolarınızı sekleyebilirsiniz (örneğin, bir SQLite veritabanı).
Dış Veri Kaynağı ile çalışmak için Menü Denetimi'nin Veri Kaynağının (örneğin) bir örneğini oluşturacağız ve gerekli verileri sağlamak için çeşitli yöntemleri NSComboBoxDataSource geçersiz kılabilirsiniz:
ItemCount- Listede yer alan öğe sayısını döndürür.ObjectValueForItem- Belirli bir dizin için öğenin değerini döndürür.IndexOfItem- Öğe değerinin dizinini döndürür.CompletedString- Kısmen türe sahip öğe değeri için eşleşen ilk öğe değerini döndürür. Bu yöntem yalnızca Otomatik Tamamlama etkinleştirildiyse çağrılır (Completes = true).
Diğer ayrıntılar için Veritabanları ve ComboBoxes ile Çalışma belgesinin Veritabanları ve ComboBoxes bölümüne bakın.
Listenin Görünümünü Ayarlama
Menü Denetimi görünümünü ayarlamak için aşağıdaki yöntemler kullanılabilir:
HasVerticalScroller-trueise, denetim dikey bir kaydırma çubuğu görüntüler.VisibleItems- Denetim açıldığında görüntülenen öğe sayısını ayarlayın. Varsayılan değer beştir (5).IntercellSpacing- Sol ve sağ kenar boşluklarını belirten ve öğesinin öğeden önce ve sonra alanı belirten bir sağlayarak belirli bir öğenin çevresindekiNSSizeWidthalan miktarınıHeightayarlayın.ItemHeight- Listede her öğenin yüksekliğini belirtir.
Daha Drop-Down NSPopupButtons için, ilk Menü Öğesi denetimin başlığını sağlar. Örneğin:
Başlığı değiştirmek için bu öğeyi bir Çıkış olarak ortaya çıkar ve aşağıdaki gibi bir kod kullanın:
DropDownSelected.Title = "Item 1";
Seçili Öğeleri Manipüle
Aşağıdaki yöntemler ve özellikler, Menü Denetimi'nin listesinde seçili öğeleri işlemeye olanak sağlar:
SelectItem- Verilen dizinde öğeyi seçer.Select- Verilen öğe değerini seçin.DeselectItem- Verilen dizinde öğenin seçimini kaldırın.SelectedIndex- Seçili olan öğenin dizinini döndürür.SelectedValue- Seçili olan öğenin değerini döndürür.
Verilen dizinde öğesini listenin en üstünde sunmak için kullanın ve verilen dizinde öğe görünür olana kadar listeyi ScrollItemAtIndexToTopScrollItemAtIndexToVisible kaydırmak için öğesini kullanın.
Olaylara Yanıt Verme
Menü Denetimleri, kullanıcı etkileşimine yanıt vermek için aşağıdaki olayları sağlar:
SelectionChanged- Kullanıcı listeden bir değer seçtikten sonra çağrılır.SelectionIsChanging- Yeni kullanıcı seçilen öğe etkin seçim haline gelmeden önce çağrılır.WillPopup- Öğe açılan listesi görüntülenmeden önce çağrılır.WillDismiss- Öğe açılan listesi kapatılana kadar çağrılır.
Denetimler için, kullanıcı Birleşik Giriş Kutusu'daki metnin değerini her düzenlerken çağrılan olay gibi ile aynı NSComboBoxNSTextField olayların hepsini Changed içerir.
İsteğe bağlı olarak, öğeyi bir Eyleme ek Interface Builder ve kullanıcı tarafından tetiklenen Eyleme yanıt vermek için aşağıdaki gibi bir kod kullanarak seçiliyken tanımlanan İç Veri Menüsü Öğeleri'ne yanıt veebilirsiniz:
partial void ItemOne (Foundation.NSObject sender) {
DropDownSelected.Title = "Item 1";
FeedbackLabel.StringValue = "Item One Selected";
}
Menüler ve Menü Denetimleri ile çalışma hakkında daha fazla bilgi için lütfen Menüler ve Açılır Düğme ve Liste Pull-Down bakın.
Seçim Denetimleriyle Çalışma
AppKit, Kullanıcı Arabirimi Design uygulamanıza ek olarak kullanılmaktadır. Daha fazla bilgi için lütfen Apple'ınOS Xİnsan Arabirimi Yönergeleri'nin Seçim Denetimleri bölümüne bakın.
Seçim Denetimi'nin kullanıcı etkileşimi olduğunda bunu bir Eylem olarak ortaya çıkararak izlemenin iki yolu vardır. Örnek:
partial void SegmentButtonPressed (Foundation.NSObject sender) {
FeedbackLabel.StringValue = string.Format("Button {0} Pressed",SegmentButtons.SelectedSegment);
}
Veya olayına bir Temsilci ekerek. Örnek:
TickedSlider.Activated += (sender, e) => {
FeedbackLabel.StringValue = string.Format("Stepper Value: {0:###}",TickedSlider.IntValue);
};
Seçim Denetimi'nin değerini ayarlamak veya okumak için özelliğini IntValue kullanın. Örnek:
FeedbackLabel.StringValue = string.Format("Stepper Value: {0:###}",TickedSlider.IntValue);
Özel denetimler (Color Well ve Image Well gibi), değer türleri için belirli özelliklere sahiptir. Örneğin:
ColorWell.Color = NSColor.Red;
ImageWell.Image = NSImage.ImageNamed ("tag.png");
, NSDatePicker Tarih ve saat ile doğrudan çalışmak için aşağıdaki özelliklere sahiptir:
- TARİHSAYISI -geçerli tarih ve saat değeri bir olarak .
- Yerel -kullanıcının konumu bir .
- TimeInterval -saat değeri bir .
- Saat dilimi -kullanıcının saat dilimi olarak .
Gösterge denetimleriyle çalışma
AppKit, Kullanıcı arabirimi tasarımınızda kullanılabilecek çeşitli türlerde gösterge denetimleri sağlar. Daha fazla bilgi için lütfen Apple 'ın OS X ınsan arabirimi yönergeleriningösterge denetimleri bölümüne bakın.
Bir gösterge denetiminin Kullanıcı etkileşimi ne zaman bir eylem veya Çıkış olarak ortaya çıkararak ve olaya bir temsilci ekleyerek izlemenin iki yolu vardır . Örnek:
LevelIndicator.Activated += (sender, e) => {
FeedbackLabel.StringValue = string.Format("Level: {0:###}",LevelIndicator.DoubleValue);
};
Gösterge denetiminin değerini okumak veya ayarlamak için DoubleValue özelliğini kullanın. Örnek:
FeedbackLabel.StringValue = string.Format("Rating: {0:###}",Rating.DoubleValue);
Belirsiz ve zaman uyumsuz Ilerleme göstergeleri görüntülendiğinde animasyon edilmelidir. StartAnimationAnimasyon görüntülenirken başlatmak için yöntemini kullanın. Örnek:
Indeterminate.StartAnimation (this);
AsyncProgress.StartAnimation (this);
Yöntemi çağırmak StopAnimation animasyonu durdurur.
Metin denetimleriyle çalışma
AppKit, Kullanıcı arabirimi tasarımınızda kullanılabilecek çeşitli türlerde metin denetimleri sağlar. Daha fazla bilgi için lütfen Apple 'ın OS X ınsan arabirimi yönergelerininmetin denetimleri bölümüne bakın.
Metin alanları ( NSTextField ) için, aşağıdaki olaylar kullanıcı etkileşimini izlemek için kullanılabilir:
- Değiştirilen -Kullanıcı alanın değerini değiştirdiğinde her zaman tetiklenir. Örneğin, yazılan her karakterde.
- Editingbaşladığı -Kullanıcı, düzenlenmek üzere alanı seçtiğinde tetiklenir.
- Edııngended -Kullanıcı alandaki ENTER tuşuna bastığında veya alanı terk ettiğinde.
StringValueAlanın değerini okumak veya ayarlamak için özelliğini kullanın. Örnek:
FeedbackLabel.StringValue = string.Format("User ID: {0}",UserField.StringValue);
Sayısal değerleri görüntüleyen ya da düzenleyebilen alanlar için, IntValue özelliğini kullanabilirsiniz. Örnek:
FeedbackLabel.StringValue = string.Format("Number: {0}",NumberField.IntValue);
, NSTextView Yerleşik biçimlendirme ile tam özellikli bir metin düzenleme ve görüntüleme alanı sağlar. Bir gibi NSTextField , StringValue alanın değerini okumak veya ayarlamak için özelliğini kullanın.
Xamarin. Mac uygulamasındaki metin görünümleriyle çalışmaya yönelik karmaşık bir örnek örneği için lütfen Sourcewriter örnek uygulamasınabakın. SourceWriter, kod tamamlama ve basit sözdizimi vurgulama için destek sağlayan basit bir kaynak kod düzenleyicisidir.
SourceWriter kodu tamamen yorumlıydı ve kullanılabilir olduğunda, temel teknolojiden veya metotlardan Xamarin. Mac kılavuzlar belgelerindeki ilgili bilgilere yönelik bağlantılar sunulmaktadır.
Içerik görünümleriyle çalışma
AppKit, Kullanıcı arabirimi tasarımınızda kullanılabilecek çeşitli türlerde Içerik görünümleri sağlar. Daha fazla bilgi için lütfen Apple 'ın OS X ınsan arabirimi yönergelerininiçerik görünümleri bölümüne bakın.
Popovers
Popover, belirli bir denetimle veya ekranda bir alanla doğrudan ilgili işlevselliği sağlayan geçici bir kullanıcı arabirimi öğesidir. Bir Popover, ilişkili olduğu denetimi veya alanı içeren pencerenin üzerinde kayan nokta ve kenarlığı, ortaya çıktı olan noktayı göstermek için bir ok içerir.
Bir Popover oluşturmak için aşağıdakileri yapın:
.storyboard.storyboardiçine çift tıklayarak bir Popover eklemek istediğiniz pencerenin dosyasını açınKitaplık denetçisinden bir Görünüm denetleyicisiniarabirim düzenleyicisinesürükleyin:
Özel görünümünboyutunu ve yerleşimini tanımlayın:
Denetim-açılan pencerenin kaynağından Görünüm denetleyicisiüzerine tıklayıp sürükleyin:
Açılan menüden Popover ' i seçin:
değişikliklerinizi kaydedin ve xcode ile eşitlemek için Mac için Visual Studio geri dönün.
Sekme görünümleri
Sekme görünümleri, panolarolarak adlandırılan bir görünüm kümesiyle birleştirilmiş bir sekme listesinden (kesimli bir denetime benzer şekilde görünür) oluşur. Kullanıcı yeni bir sekme seçtiğinde, buna bağlı olan bölmesi görüntülenir. Her bölme kendi denetim kümesini içerir.
Xcode 'un Interface Builder bir sekme görünümü ile çalışırken, sekme sayısını ayarlamak için öznitelik denetçisini kullanın:
Başlığını ayarlamak ve Kullanıcı arabirimi öğelerini bölmesineeklemek Için arabirim hiyerarşisindeki her sekmeyi seçin:
Veri bağlama AppKit denetimleri
Xamarin. Mac uygulamanızda Key-Value kodlama ve veri bağlama tekniklerini kullanarak, doldurmanız ve Kullanıcı arabirimi öğeleriyle çalışmak için yazmanız gereken kod miktarını büyük ölçüde azaltabilirsiniz. Ayrıca, ön uç Kullanıcı arabiriminizden (Model-View-Controller) yedekleme verilerinizi (veri modeli) daha fazla ayırma avantajına sahip olursunuz. böylece, daha esnek uygulama tasarımı daha kolay hale getirir.
Key-Value kodlama (KVC), anahtar değişkenleri veya erişimci yöntemleri () aracılığıyla bunlara erişmek yerine özellikleri belirlemek için anahtarlar (özel olarak biçimlendirilmiş dizeler) kullanılarak nesnenin özelliklerine dolaylı olarak erişmenin bir mekanizmadır get/set . Xamarin. Mac uygulamanızda Key-Value kodlama uyumlu erişimciler uygulayarak, Key-Value gözlemleme (KVO), veri bağlama, çekirdek verileri, Cocoa bağlamaları ve scriptability gibi diğer macOS özelliklerine erişebilirsiniz.
Daha fazla bilgi için lütfen veri bağlamamız ve Key-Value kodlama belgelerinin basit veri bağlama bölümüne bakın.
Özet
Bu makale, Xamarin. Mac uygulamasındaki düğmeler, Etiketler, metin alanları, onay kutuları ve kesimli denetimler gibi standart AppKit denetimleriyle çalışma konusunda ayrıntılı bir bakış gerçekleştirmiştir. Bu, bunları Xcode Interface Builder ' de bir kullanıcı arabirimi tasarımına eklemeyi, bunları Outler ve eylemler aracılığıyla koda ve C# kodundaki AppKit denetimleriyle çalışmayı ele alınmaktadır.




























