Konfiguracja platformy dla komputerów Mac
Przed rozpoczęciem utwórz (lub użyj istniejącego) Xamarin.Forms projektu. Aplikacje dla komputerów Mac można dodawać tylko przy użyciu Visual Studio dla komputerów Mac.
Dodawanie projektu systemu macOS do Xamarin.Forms wideo
Dodawanie aplikacji dla komputerów Mac
Postępuj zgodnie z tymi instrukcjami, aby dodać aplikację dla komputerów Mac, która będzie działać w systemach macOS Sierra i macOS El Capitan:
W Visual Studio dla komputerów Mac kliknij prawym przyciskiem myszy istniejące Xamarin.Forms rozwiązanie i wybierz polecenie Dodaj > nowy projekt...
W oknie Nowy projekt wybierz pozycję Aplikacja Cocoa dla > komputerów Mac > i naciśnij przycisk Dalej.
Wpisz nazwę aplikacji (i opcjonalnie wybierz inną nazwę elementu Dock), a następnie naciśnij przycisk Dalej.
Przejrzyj konfigurację i naciśnij przycisk Utwórz. Poniżej przedstawiono następujące kroki:
W projekcie dla komputerów Mac kliknij prawym przyciskiem myszy pozycję Pakiety Dodaj pakiety > ... w celu dodania pakietu Xamarin.Forms NuGet. Należy również zaktualizować inne projekty, aby używały tej samej wersji Xamarin.Forms pakietu NuGet.
W projekcie dla komputerów Mac kliknij prawym przyciskiem myszy pozycję Odwołania i dodaj odwołanie do Xamarin.Forms projektu (projekt udostępniony lub projekt biblioteki platformy .NET Standard).
Zaktualizuj Main.cs , aby zainicjować element
AppDelegate
:static class MainClass { static void Main(string[] args) { NSApplication.Init(); NSApplication.SharedApplication.Delegate = new AppDelegate(); // add this line NSApplication.Main(args); } }
Zaktualizuj
AppDelegate
polecenie , aby zainicjować Xamarin.Formsokno i załadować Xamarin.Forms aplikację (pamiętaj o ustawieniu odpowiedniegoTitle
elementu ). Jeśli masz inne zależności, które należy zainicjować, zrób to również tutaj.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); } }
Kliknij dwukrotnie plik Main.storyboard , aby edytować w programie Xcode. Zaznacz pole wyboru Okno i usuń zaznaczeniepola wyboru Is Initial Controller (Jest to spowodowane tym, że powyższy kod tworzy okno):
Możesz edytować system menu w scenorysie, aby usunąć niechciane elementy.
Na koniec dodaj wszystkie zasoby lokalne (np. pliki obrazów) z istniejących projektów platformy, które są wymagane.
Projekt dla komputerów Mac powinien teraz uruchamiać Xamarin.Forms kod w systemie macOS!
Następne kroki
Style
Po wprowadzeniu ostatnich zmian OnPlatform
można teraz kierować dowolną liczbę platform. Obejmuje to system 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>
Pamiętaj, że możesz również podwoić się na platformach takich jak: <On Platform="iOS, macOS" ...>
.
Rozmiar i położenie okna
Możesz dostosować początkowy rozmiar i lokalizację okna w pliku AppDelegate
:
var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768); // x, y, width, height
Znane problemy
Jest to wersja zapoznawcza, więc należy oczekiwać, że nie wszystko jest gotowe do produkcji. Poniżej przedstawiono kilka rzeczy, które można napotkać podczas dodawania systemu macOS do projektów:
Nie wszystkie pakiety NuGet są gotowe dla systemu macOS
Niektóre używane biblioteki nie obsługują jeszcze systemu macOS. W takim przypadku należy wysłać żądanie do osoby odpowiedzialnej za projekt, aby ją dodać. Dopóki nie będą one obsługiwane, może być konieczne wyszukanie alternatyw.
Brakujące Xamarin.Forms funkcje
Nie wszystkie Xamarin.Forms funkcje są kompletne w tej wersji zapoznawczej. Aby uzyskać więcej informacji, zobacz Stan systemu macOS pomocy technicznej platformy Xamarin.Forms w repozytorium GitHub.