Nastavení platformy Mac

Než začnete, vytvořte (nebo použijte existující) Xamarin.Forms projekt. Aplikace pro Mac můžete přidávat jenom pomocí Visual Studio pro Mac.

Přidání projektu macOS do Xamarin.Forms videa

Přidání aplikace pro Mac

Podle těchto pokynů přidejte aplikaci pro Mac, která se bude spouštět v systémech macOS Sierra a macOS El Capitan:

  1. V Visual Studio pro Mac klikněte pravým tlačítkem na existující Xamarin.Forms řešení a zvolte Přidat > nový projekt...

  2. V okně Nový projekt zvolte Mac > App > Cocoa App a stiskněte Další.

  3. Zadejte název aplikace (a volitelně zvolte jiný název položky Docku) a stiskněte Klávesu Další.

  4. Zkontrolujte konfiguraci a stiskněte Vytvořit. Tyto kroky jsou uvedené níže:

    Animated instructions showing how to add a Cocoa app

  5. V projektu Mac klikněte pravým tlačítkem na Balíčky Přidat balíčky > ... a přidejte Xamarin.Forms NuGet. Měli byste také aktualizovat ostatní projekty tak, aby používaly stejnou verzi Xamarin.Forms balíčku NuGet.

  6. V projektu Mac klikněte pravým tlačítkem myši na Odkazy a přidejte odkaz na Xamarin.Forms projekt (sdílený projekt nebo projekt knihovny .NET Standard).

    Add a reference to the Xamarin.Forms shared code project

  7. Aktualizujte Main.cs tak, aby inicializoval:AppDelegate

    static class MainClass
    {
        static void Main(string[] args)
        {
            NSApplication.Init();
            NSApplication.SharedApplication.Delegate = new AppDelegate(); // add this line
            NSApplication.Main(args);
        }
    }
    
  8. Aktualizujte AppDelegate na inicializaci Xamarin.Forms, vytvořte okno a načtěte Xamarin.Forms aplikaci (nezapomeňte nastavit odpovídající Title). Pokud máte další závislosti, které je potřeba inicializovat, udělejte to i tady.

    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. Poklikejte na Main.storyboard a upravte ho v Xcode. Zaškrtněte políčko Okno a zrušte zaškrtnutí políčka Je počáteční kontroler (důvodem je to, že výše uvedený kód vytvoří okno):

    Uncheck the Is Initial Controller checkbox in Xcode

    Systém nabídek ve scénáři můžete upravit tak, aby se odebraly nežádoucí položky.

  10. Nakonec přidejte všechny místní zdroje (např. soubory obrázků) ze stávajících projektů platformy, které jsou požadovány.

  11. Projekt Mac by teď měl spouštět kód Xamarin.Forms v systému macOS!

Další kroky

Formátování

Díky nedávným změnám, které jste udělali, OnPlatform teď můžete cílit na libovolný počet platforem. To zahrnuje 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>

Všimněte si, že můžete také zdvojnásobit na platformách takto: <On Platform="iOS, macOS" ...>.

Velikost a umístění okna

Můžete upravit počáteční velikost a umístění okna v :AppDelegate

var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768);  // x, y, width, height

Známé problémy

Jedná se o verzi Preview, takže byste měli očekávat, že není všechno připravené pro produkční prostředí. Níže je několik věcí, se kterými se můžete setkat při přidávání macOS do svých projektů:

Ne všechny NuGety jsou připravené pro macOS

Možná zjistíte, že některé knihovny, které používáte, zatím nepodporují macOS. V takovém případě budete muset odeslat žádost správci projektu, aby ho přidal. Dokud nebudou mít podporu, budete možná muset hledat alternativy.

Chybějící Xamarin.Forms funkce

Ne všechny Xamarin.Forms funkce jsou v této verzi Preview dokončené. Další informace najdete v tématu Stav podpory platformy macOS v Xamarin.Forms úložišti GitHub.