Bagikan melalui


Pemberitahuan di Xamarin.Mac

Artikel ini membahas cara bekerja dengan pemberitahuan dalam aplikasi Xamarin.Mac. Ini menjelaskan membuat dan menampilkan pemberitahuan dari kode C# dan menanggapi interaksi pengguna.

Saat bekerja dengan C# dan .NET dalam aplikasi Xamarin.Mac, Anda memiliki akses ke Pemberitahuan yang sama dengan yang digunakan Objective-C pengembang dan Xcode .

Pemberitahuan adalah jenis dialog khusus yang muncul ketika masalah serius terjadi (seperti kesalahan) atau sebagai peringatan (seperti bersiap untuk menghapus file). Karena pemberitahuan adalah dialog, pemberitahuan juga memerlukan respons pengguna sebelum dapat ditutup.

Contoh pemberitahuan

Dalam artikel ini, kita akan membahas dasar-dasar bekerja dengan Pemberitahuan dalam aplikasi Xamarin.Mac.

Pengantar Pemberitahuan

Pemberitahuan adalah jenis dialog khusus yang muncul ketika masalah serius terjadi (seperti kesalahan) atau sebagai peringatan (seperti bersiap untuk menghapus file). Karena Pemberitahuan mengganggu pengguna karena mereka harus diberhentikan sebelum pengguna dapat melanjutkan tugas mereka, hindari menampilkan pemberitahuan kecuali benar-benar diperlukan.

Apple menyarankan panduan berikut:

  • Jangan gunakan pemberitahuan hanya untuk memberi pengguna informasi.
  • Jangan tampilkan pemberitahuan untuk tindakan umum yang tidak dapat diurungkan. Bahkan jika situasi itu dapat menyebabkan kehilangan data.
  • Jika situasi layak untuk pemberitahuan, hindari menggunakan elemen atau metode UI lainnya untuk menampilkannya.
  • Ikon Perhatian harus digunakan dengan hemat.
  • Jelaskan situasi pemberitahuan dengan jelas dan singkat dalam pesan pemberitahuan.
  • Nama Tombol Default harus sesuai dengan tindakan yang Anda jelaskan dalam pesan pemberitahuan Anda.

Untuk informasi selengkapnya, lihat bagian Pemberitahuan dari Pedoman Antarmuka Manusia OS X Apple

Anatomi Pemberitahuan

Seperti yang dinyatakan di atas, pemberitahuan harus ditampilkan kepada pengguna aplikasi Anda ketika masalah serius terjadi atau sebagai peringatan untuk potensi kehilangan data (seperti menutup file yang tidak disimpan). Di Xamarin.Mac, pemberitahuan dibuat dalam kode C#, misalnya:

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

Kode di atas menampilkan pemberitahuan dengan ikon aplikasi yang ditujukan pada ikon peringatan, judul, pesan peringatan, dan satu tombol OK :

Pemberitahuan dengan tombol OK

Apple menyediakan beberapa properti yang dapat digunakan untuk menyesuaikan pemberitahuan:

  • AlertStyle mendefinisikan jenis pemberitahuan sebagai salah satu hal berikut:
    • Peringatan - Digunakan untuk memperingatkan pengguna peristiwa saat ini atau yang akan datang yang tidak penting. Ini adalah gaya default.
    • Informasi - Digunakan untuk memperingatkan pengguna tentang peristiwa saat ini atau yang akan datang. Saat ini, tidak ada perbedaan yang terlihat antara Peringatan dan Informasi
    • Kritis - Digunakan untuk memperingatkan pengguna tentang konsekuensi parah dari peristiwa yang akan datang (seperti menghapus file). Jenis pemberitahuan ini harus digunakan dengan hemat.
  • MessageText - Ini adalah pesan atau judul utama pemberitahuan dan harus dengan cepat menentukan situasi kepada pengguna.
  • InformativeText - Ini adalah isi pemberitahuan di mana Anda harus menentukan situasi dengan jelas dan menyajikan opsi yang dapat digunakan kepada pengguna.
  • Ikon - Memungkinkan ikon kustom ditampilkan kepada pengguna.
  • HelpAnchor & ShowHelp - Memungkinkan pemberitahuan untuk diikat ke dalam aplikasi HelpBook dan menampilkan bantuan untuk pemberitahuan.
  • Tombol - Secara default, pemberitahuan hanya memiliki tombol OK tetapi koleksi Tombol memungkinkan Anda menambahkan lebih banyak pilihan sesuai kebutuhan.
  • ShowSuppressionButton - Jika true menampilkan kotak centang yang dapat digunakan pengguna untuk menekan pemberitahuan untuk kejadian berikutnya dari peristiwa yang memicunya.
  • AccessoryView - Memungkinkan Anda melampirkan subview lain ke pemberitahuan untuk memberikan informasi tambahan, seperti menambahkan Bidang Teks untuk entri data. Jika Anda mengatur AccessoryView baru atau memodifikasi yang sudah ada, Anda perlu memanggil Layout() metode untuk menyesuaikan tata letak pemberitahuan yang terlihat.

Menampilkan Pemberitahuan

Ada dua cara berbeda agar pemberitahuan dapat ditampilkan, Mengambang Bebas atau sebagai Lembar. Kode berikut menampilkan pemberitahuan sebagai mengambang bebas:

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 ();

Jika kode ini dijalankan, berikut ini ditampilkan:

Pemberitahuan sederhana

Kode berikut menampilkan pemberitahuan yang sama dengan Lembar:

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);

Jika kode ini dijalankan, berikut ini akan ditampilkan:

Pemberitahuan ditampilkan sebagai lembar

Bekerja dengan Tombol Pemberitahuan

Secara default, Pemberitahuan hanya menampilkan tombol OK . Namun, Anda tidak terbatas pada itu, Anda dapat membuat tombol tambahan dengan menambahkannya ke koleksi Tombol . Kode berikut membuat pemberitahuan mengambang bebas dengan tombol OK, Batal, dan Mungkin :

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 ();

Tombol pertama yang ditambahkan akan menjadi Tombol Default yang akan diaktifkan jika pengguna menekan tombol Enter. Nilai yang dikembalikan akan menjadi bilangan bulat yang mewakili tombol mana yang ditekan pengguna. Dalam kasus kami, nilai berikut akan dikembalikan:

  • OK - 1000.
  • Batal - 1001.
  • Mungkin - 1002.

Jika kita menjalankan kode , berikut ini akan ditampilkan:

Pemberitahuan dengan tiga opsi tombol

Berikut adalah kode untuk pemberitahuan yang sama dengan Lembar:

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);
});

Jika kode ini dijalankan, berikut ini akan ditampilkan:

Pemberitahuan tiga tombol ditampilkan sebagai lembar

Penting

Anda tidak boleh menambahkan lebih dari tiga tombol ke pemberitahuan.

Menampilkan Tombol Tekan

Jika properti Pemberitahuan ShowSuppressButton adalah true, pemberitahuan menampilkan kotak centang yang dapat digunakan pengguna untuk menekan pemberitahuan untuk kejadian berikutnya dari peristiwa yang memicunya. Kode berikut menampilkan pemberitahuan mengambang bebas dengan tombol tekan:

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);

Jika nilainya alert.SuppressionButton.State adalah NSCellStateValue.On, pengguna telah mencentang kotak centang Sembunyikan, jika tidak, mereka belum.

Jika kode dijalankan, berikut ini akan ditampilkan:

Pemberitahuan dengan tombol tekan

Berikut adalah kode untuk pemberitahuan yang sama dengan Lembar:

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);
});

Jika kode ini dijalankan, berikut ini akan ditampilkan:

Pemberitahuan dengan tombol tekan ditampilkan sebagai lembar

Menambahkan SubView Kustom

Pemberitahuan memiliki AccessoryView properti yang dapat digunakan untuk menyesuaikan pemberitahuan lebih lanjut dan menambahkan hal-hal seperti Bidang Teks untuk input pengguna. Kode berikut membuat pemberitahuan mengambang bebas dengan bidang input teks tambahan:

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);

Baris kunci di sini adalah var input = new NSTextField (new CGRect (0, 0, 300, 20)); yang membuat Bidang Teks baru yang akan kita tambahkan pemberitahuan. alert.AccessoryView = input; yang melampirkan Bidang Teks ke pemberitahuan dan panggilan ke Layout() metode , yang diperlukan untuk mengubah ukuran pemberitahuan agar pas di subview baru.

Jika kita menjalankan kode, berikut ini akan ditampilkan:

Jika kita menjalankan kode, berikut ini akan ditampilkan

Berikut adalah pemberitahuan yang sama dengan lembar:

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);
});

Jika kita menjalankan kode ini, berikut ini akan ditampilkan:

Pemberitahuan dengan tampilan kustom

Ringkasan

Artikel ini telah melihat secara rinci tentang bekerja dengan Pemberitahuan dalam aplikasi Xamarin.Mac. Kami melihat berbagai jenis dan penggunaan Pemberitahuan, cara membuat dan menyesuaikan Pemberitahuan dan cara bekerja dengan Pemberitahuan dalam kode C#.