Penyetelan Platform Mac
Sebelum memulai, buat (atau gunakan proyek yang sudah ada). Xamarin.Forms Anda hanya dapat menambahkan app Mac menggunakan Visual Studio untuk Mac.
Menambahkan proyek macOS ke Xamarin.Forms video
Menambahkan App Mac
Ikuti petunjuk berikut untuk menambahkan app Mac yang akan berjalan di macOS Sierra dan macOS El Capitan:
Di Visual Studio untuk Mac, klik kanan pada solusi yang Xamarin.Forms ada dan pilih Tambahkan > Proyek Baru...
Di jendela Proyek Baru pilih App Mac > > Cocoa App dan tekan Berikutnya.
Ketik Nama Aplikasi (dan secara opsional pilih nama yang berbeda untuk Item Dock), lalu tekan Berikutnya.
Tinjau konfigurasi dan tekan Buat. Langkah-langkah ini ditunjukkan di bawah ini:
Dalam proyek Mac, klik kanan pada Paket > Tambahkan Paket... untuk menambahkan Xamarin.Forms NuGet. Anda juga harus memperbarui proyek lain untuk menggunakan versi Xamarin.Forms paket NuGet yang sama.
Di proyek Mac, klik kanan referensi dan tambahkan referensi ke Xamarin.Forms proyek (proyek pustaka Shared Project atau .NET Standard).
Perbarui Main.cs untuk menginisialisasi
AppDelegate
:static class MainClass { static void Main(string[] args) { NSApplication.Init(); NSApplication.SharedApplication.Delegate = new AppDelegate(); // add this line NSApplication.Main(args); } }
Perbarui
AppDelegate
untuk menginisialisasi Xamarin.Forms, buat jendela, dan muat Xamarin.Forms aplikasi (mengingat untuk mengatur yang sesuaiTitle
). Jika Anda memiliki dependensi lain yang perlu diinisialisasi, lakukan juga di sini.using Xamarin.Forms; using Xamarin.Forms.Platform.MacOS; // also add a using for the Xamarin.Forms project, if the namespace is different to this file ... [Register("AppDelegate")] public class AppDelegate : FormsApplicationDelegate { NSWindow window; public AppDelegate() { var style = NSWindowStyle.Closable | NSWindowStyle.Resizable | NSWindowStyle.Titled; var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768); window = new NSWindow(rect, style, NSBackingStore.Buffered, false); window.Title = "Xamarin.Forms on Mac!"; // choose your own Title here window.TitleVisibility = NSWindowTitleVisibility.Hidden; } public override NSWindow MainWindow { get { return window; } } public override void DidFinishLaunching(NSNotification notification) { Forms.Init(); LoadApplication(new App()); base.DidFinishLaunching(notification); } }
Klik dua kali Main.storyboard untuk mengedit di Xcode. Pilih Jendela dan kosongkan kotak centang Is Initial Controller (ini karena kode di atas membuat jendela):
Anda dapat mengedit sistem menu di papan-cerita untuk menghapus item yang tidak diinginkan.
Terakhir, tambahkan sumber daya lokal apa pun (misalnya file gambar) dari proyek platform yang ada yang diperlukan.
Proyek Mac sekarang harus menjalankan kode Anda Xamarin.Forms di macOS!
Langkah berikutnya
Tata Gaya
Dengan perubahan terbaru yang dilakukan pada OnPlatform
Anda sekarang dapat menargetkan sejumlah platform. Itu termasuk macOS.
<Button.TextColor>
<OnPlatform x:TypeArguments="Color">
<On Platform="iOS" Value="White"/>
<On Platform="macOS" Value="White"/>
<On Platform="Android" Value="Black"/>
</OnPlatform>
</Button.TextColor>
Perhatikan bahwa Anda juga dapat menggandakan platform seperti ini: <On Platform="iOS, macOS" ...>
.
Ukuran dan Posisi Jendela
Anda dapat menyesuaikan ukuran awal dan lokasi jendela di AppDelegate
:
var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768); // x, y, width, height
Masalah Umum
Ini adalah Pratinjau, jadi Anda harus mengharapkan bahwa tidak semuanya siap produksi. Di bawah ini adalah beberapa hal yang mungkin Anda temui saat menambahkan macOS ke proyek Anda:
Tidak semua NuGets siap untuk macOS
Anda mungkin menemukan bahwa beberapa pustaka yang Anda gunakan belum mendukung macOS. Dalam hal ini, Anda harus mengirim permintaan ke pemeliharaan proyek untuk menambahkannya. Sampai mereka memiliki dukungan, Anda mungkin perlu mencari alternatif.
Fitur Yang Hilang Xamarin.Forms
Tidak semua Xamarin.Forms fitur selesai dalam pratinjau ini. Untuk informasi selengkapnya, lihat Status MacOS Dukungan Platform di Xamarin.Forms repositori GitHub.