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:
V Visual Studio pro Mac klikněte pravým tlačítkem na existující Xamarin.Forms řešení a zvolte Přidat > nový projekt...
V okně Nový projekt zvolte Mac > App > Cocoa App a stiskněte Další.
Zadejte název aplikace (a volitelně zvolte jiný název položky Docku) a stiskněte Klávesu Další.
Zkontrolujte konfiguraci a stiskněte Vytvořit. Tyto kroky jsou uvedené níže:
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.
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).
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); } }
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); } }
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):
Systém nabídek ve scénáři můžete upravit tak, aby se odebraly nežádoucí položky.
Nakonec přidejte všechny místní zdroje (např. soubory obrázků) ze stávajících projektů platformy, které jsou požadovány.
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.