Xamarin.Mac'te Uyarılar

Bu makale, bir Xamarin.Mac uygulamasındaki uyarılarla çalışmayı kapsar. C# kodundan uyarı oluşturma ve görüntülemeyi ve kullanıcı etkileşimlerine yanıt vermeyi açıklar.

Bir Xamarin.Mac uygulamasında C# ve .NET ile çalışırken, ve Xcode'da çalışan bir geliştiricinin uyarılarına Objective-CObjective-C

Uyarı, ciddi bir sorun oluştuğunda (hata gibi) veya uyarı olarak (bir dosyayı silene hazırlanma gibi) görüntülenen özel bir iletişim kutusu t t'tir. Uyarı bir iletişim kutusu olduğundan kapatılamadan önce bir kullanıcı yanıtı gerektirir.

Örnek uyarı

Bu makalede, bir Xamarin.Mac uygulamasında Uyarılar ile çalışmayla ilgili temel bilgiler yer almaktadır.

Uyarılara Giriş

Uyarı, ciddi bir sorun oluştuğunda (hata gibi) veya uyarı olarak (bir dosyayı silene hazırlanma gibi) görüntülenen özel bir iletişim kutusu t t'tir. Uyarılar, kullanıcının görevine devam etmek için önce kullanımdan alınması gerektiğinden kullanıcıya kesintiye neden olduğundan, kesinlikle gerekli olmadığı sürece uyarı görüntülemekten kaçının.

Apple aşağıdaki yönergeleri önerir:

  • Uyarıyı yalnızca kullanıcılara bilgi vermek için kullanma.
  • Yaygın ve geri alınabilir eylemler için uyarı görüntüleme. Bu durum veri kaybına neden olabilir.
  • Bir durum uyarıya değerse, görüntülemek için başka bir kullanıcı arabirimi öğesi veya yöntemi kullanmaktan kaçının.
  • Dikkat simgesi dikkatli kullanılmalıdır.
  • Uyarı iletisinde uyarı durumunu net ve kısa bir şekilde açık bir şekilde açık olun.
  • Varsayılan Düğme adı, uyarı iletisinde açıklanan eyleme karşılık gelen bir addır.

Daha fazla bilgi için Apple'ınOS X İnsan Arabirimi Yönergeleri'nin Uyarılar bölümüne bakın

Bir Uyarının Anatomisi

Yukarıda belirtildiği gibi, ciddi bir sorun oluştuğunda veya olası veri kaybına yönelik bir uyarı olarak (örneğin, kaydettirlanmamış bir dosyayı kapatma) uyarıların uygulama kullanıcınıza gösteriliyor olması gerekir. Xamarin.Mac'te C# kodunda bir uyarı oluşturulur, örneğin:

var alert = new NSAlert () {
  AlertStyle = NSAlertStyle.Critical,
  InformativeText = "We need to save the document here...",
  MessageText = "Save Document",
};
alert.RunModal ();

Yukarıdaki kod, uygulama simgesinin uyarı simgesinin üzerine, başlığına, uyarı iletisine ve tek bir Tamam düğmesine sahip bir uyarı görüntüler:

Tamam düğmesi olan bir uyarı

Apple, bir uyarıyı özelleştirmek için kullanılmaktadır:

  • AlertStyle, uyarı türünü aşağıdakilerden biri olarak tanımlar:
    • Uyarı - Kullanıcıya kritik olmayan geçerli veya yaklaşan bir olayı uyarmak için kullanılır. Bu, varsayılan stildir.
    • Bilgi: Kullanıcıya geçerli veya yaklaşan bir olay hakkında uyarı almak için kullanılır. Şu anda Uyarı ile Bilgilendirme arasında görünür bir fark yoktur
    • Kritik - Kullanıcıya yaklaşan bir olayın ciddi sonuçları (örneğin, bir dosyayı silme) konusunda uyarmak için kullanılır. Bu tür bir uyarı, fazla kullanılmadan kullanılmalıdır.
  • MessageText : Uyarının ana iletisi veya başlığıdır ve durumu kullanıcıya hızla tanımlamanız gerekir.
  • BilgilendiriciMetin- Bu, durumu net bir şekilde tanımlamanız ve kullanıcıya çalışılabilir seçenekler sunmanız gereken uyarı gövdesidir.
  • Simge - Kullanıcıya özel bir simgenin görüntülenebilir.
  • HelpAnchorShowsHelp - Uyarının uygulama Yardım Kitabına bağlanarak uyarı için yardım görüntülemesine izin verir.
  • Düğmeler - Varsayılan olarak, bir uyarıda yalnızca Tamam düğmesi bulunur, ancak Düğmeler koleksiyonu gerektiğinde daha fazla seçenek eklemenize olanak sağlar.
  • ShowsSuppressionButton - Kullanıcının uyarıyı tetikleyen olayın sonraki oluşumları için gizlemesi için kullanabileceği bir onay kutusu görüntülerse.
  • AccessoryView - Veri girişi için Metin Alanı ekleme gibi ek bilgiler sağlamak için uyarıya başka bir alt görünüm eklemenize olanak sağlar. Yeni bir AccessoryView ayarlarsanız veya var olan bir görünümde değişiklik yaptısanız, uyarının görünür düzenini ayarlamak için yöntemini çağırmanız gerekir.

Uyarı Görüntüleme

Bir uyarının iki farklı şekilde görüntülen Free-Floating sayfa olarak görüntülenebilir. Aşağıdaki kod bir uyarıyı serbest kayan kayan olarak görüntüler:

var alert = new NSAlert () {
  AlertStyle = NSAlertStyle.Informational,
  InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
  MessageText = "Alert Title",
};
alert.RunModal ();

Bu kod çalıştır olursa, aşağıdakiler görüntülenir:

Basit bir uyarı

Aşağıdaki kod, Bir Sayfa ile aynı uyarıyı görüntüler:

var alert = new NSAlert () {
  AlertStyle = NSAlertStyle.Informational,
  InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
  MessageText = "Alert Title",
};
alert.BeginSheet (this);

Bu kod çalıştır olursa, aşağıdakiler görüntülenir:

Sayfa olarak görüntülenen bir uyarı

Uyarı Düğmeleriyle Çalışma

Varsayılan olarak, Bir Uyarı yalnızca Tamam düğmesini görüntüler. Ancak bununla sınırlı değildir, Düğmeler koleksiyonuna ek düğmeler ek olarak bunları oluşturabilirsiniz. Aşağıdaki kod Tamam ,İptal ve Belki düğmesiyle serbest kayan bir uyarı oluşturur:

var alert = new NSAlert () {
  AlertStyle = NSAlertStyle.Informational,
  InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
  MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
var result = alert.RunModal ();

Eklenen ilk düğme, kullanıcı Enter tuşuna basarsa etkinleştirilen Varsayılan Düğme olur. Döndürülen değer, kullanıcının hangi düğmeye basan olduğunu temsil eden bir tamsayı olur. Bizim durumumuz için aşağıdaki değerler döndürülür:

  • Tamam - 1000.
  • İptal - 1001.
  • Belki - 1002.

Kodu çalıştıracak olursanız aşağıdakiler görüntülenir:

Üç düğme seçeneğine sahip bir uyarı

Sayfa ile aynı uyarının kodu şu şekildedir:

var alert = new NSAlert () {
  AlertStyle = NSAlertStyle.Informational,
  InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
  MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
alert.BeginSheetForResponse (this, (result) => {
  Console.WriteLine ("Alert Result: {0}", result);
});

Bu kod çalıştır olursa, aşağıdakiler görüntülenir:

Sayfa olarak görüntülenen üç düğme uyarısı

Önemli

Bir uyarıya hiçbir zaman üçten fazla düğme eklemeyebilirsiniz.

Gizleme Düğmesini Gösterme

Uyarının özelliği ise, uyarı kullanıcının uyarıyı tetikleyen olayın sonraki oluşumları için gizlemesi için kullanabileceği ShowSuppressButtontrue bir onay kutusu görüntüler. Aşağıdaki kod, gizleme düğmesiyle serbest kayan bir uyarı görüntüler:

var alert = new NSAlert () {
  AlertStyle = NSAlertStyle.Informational,
  InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
  MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
alert.ShowsSuppressionButton = true;
var result = alert.RunModal ();
Console.WriteLine ("Alert Result: {0}, Suppress: {1}", result, alert.SuppressionButton.State == NSCellStateValue.On);

değeri alert.SuppressionButton.State ise, kullanıcı NSCellStateValue.On Gizleme onay kutusunu işaretlidir, yoksa denetlemez.

Kod çalıştır olursa, aşağıdakiler görüntülenir:

Gizleme düğmesi olan bir uyarı

Sayfa ile aynı uyarının kodu şu şekildedir:

var alert = new NSAlert () {
  AlertStyle = NSAlertStyle.Informational,
  InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
  MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
alert.ShowsSuppressionButton = true;
alert.BeginSheetForResponse (this, (result) => {
  Console.WriteLine ("Alert Result: {0}, Suppress: {1}", result, alert.SuppressionButton.State == NSCellStateValue.On);
});

Bu kod çalıştır olursa, aşağıdakiler görüntülenir:

Gizleme düğmesinin sayfa olarak görüntüleniyor olduğu bir uyarı

Özel Alt Görünüm Ekleme

Uyarılar, uyarıyı daha fazla özelleştirmek ve kullanıcı girişi için Metin Alanı gibi şeyler eklemek AccessoryViewAccessoryView Aşağıdaki kod, eklenen metin girişi alanıyla serbest kayan bir uyarı oluşturur:

var input = new NSTextField (new CGRect (0, 0, 300, 20));

var alert = new NSAlert () {
AlertStyle = NSAlertStyle.Informational,
InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
  MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
alert.ShowsSuppressionButton = true;
alert.AccessoryView = input;
alert.Layout ();
var result = alert.RunModal ();
Console.WriteLine ("Alert Result: {0}, Suppress: {1}", result, alert.SuppressionButton.State == NSCellStateValue.On);

Buradaki önemli var input = new NSTextField (new CGRect (0, 0, 300, 20)); satırlar, uyarıyı var input = new NSTextField (new CGRect (0, 0, 300, 20)); yeni bir Metin Alanı oluşturur. alert.AccessoryView = input; uyarıya alert.AccessoryView = input; uyarıyı yeni alt görünüme sığacak şekilde yeniden boyutlandırmak için gereken Layout() yöntemine yapılan çağrıyı iliştiren.

Kodu çalıştıracak olursanız aşağıdakiler görüntülenir:

Kodu çalıştıracak olursanız aşağıdakiler görüntülenir

Sayfayla aynı uyarı şu şekildedir:

var input = new NSTextField (new CGRect (0, 0, 300, 20));

var alert = new NSAlert () {
  AlertStyle = NSAlertStyle.Informational,
  InformativeText = "This is the body of the alert where you describe the situation and any actions to correct it.",
  MessageText = "Alert Title",
};
alert.AddButton ("Ok");
alert.AddButton ("Cancel");
alert.AddButton ("Maybe");
alert.ShowsSuppressionButton = true;
alert.AccessoryView = input;
alert.Layout ();
alert.BeginSheetForResponse (this, (result) => {
  Console.WriteLine ("Alert Result: {0}, Suppress: {1}", result, alert.SuppressionButton.State == NSCellStateValue.On);
});

Bu kodu çalıştıracak olursanız aşağıdakiler görüntülenir:

Özel görünüme sahip bir uyarı

Özet

Bu makale, bir Xamarin.Mac uygulamasında Uyarılar ile çalışmaya ayrıntılı bir bakış sağlar. Uyarıların farklı türlerini ve kullanımlarını, Uyarıları oluşturma ve özelleştirmeyi ve C# kodunda Uyarılar ile nasıl çalışılarını gördük.