Bagikan melalui


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:

  1. Di Visual Studio untuk Mac, klik kanan pada solusi yang Xamarin.Forms ada dan pilih Tambahkan > Proyek Baru...

  2. Di jendela Proyek Baru pilih App Mac > > Cocoa App dan tekan Berikutnya.

  3. Ketik Nama Aplikasi (dan secara opsional pilih nama yang berbeda untuk Item Dock), lalu tekan Berikutnya.

  4. Tinjau konfigurasi dan tekan Buat. Langkah-langkah ini ditunjukkan di bawah ini:

    Animated instructions showing how to add a Cocoa app

  5. 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.

  6. Di proyek Mac, klik kanan referensi dan tambahkan referensi ke Xamarin.Forms proyek (proyek pustaka Shared Project atau .NET Standard).

    Add a reference to the Xamarin.Forms shared code project

  7. 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);
        }
    }
    
  8. Perbarui AppDelegate untuk menginisialisasi Xamarin.Forms, buat jendela, dan muat Xamarin.Forms aplikasi (mengingat untuk mengatur yang sesuai Title). 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);
        }
    }
    
  9. 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):

    Uncheck the Is Initial Controller checkbox in Xcode

    Anda dapat mengedit sistem menu di papan-cerita untuk menghapus item yang tidak diinginkan.

  10. Terakhir, tambahkan sumber daya lokal apa pun (misalnya file gambar) dari proyek platform yang ada yang diperlukan.

  11. 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.