Udostępnij za pośrednictwem


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:

  1. W Visual Studio dla komputerów Mac kliknij prawym przyciskiem myszy istniejące Xamarin.Forms rozwiązanie i wybierz polecenie Dodaj > nowy projekt...

  2. W oknie Nowy projekt wybierz pozycję Aplikacja Cocoa dla > komputerów Mac > i naciśnij przycisk Dalej.

  3. Wpisz nazwę aplikacji (i opcjonalnie wybierz inną nazwę elementu Dock), a następnie naciśnij przycisk Dalej.

  4. Przejrzyj konfigurację i naciśnij przycisk Utwórz. Poniżej przedstawiono następujące kroki:

    Animated instructions showing how to add a Cocoa app

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

  6. 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).

    Add a reference to the Xamarin.Forms shared code project

  7. 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);
        }
    }
    
  8. Zaktualizuj AppDelegate polecenie , aby zainicjować Xamarin.Formsokno i załadować Xamarin.Forms aplikację (pamiętaj o ustawieniu odpowiedniego Titleelementu ). 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);
        }
    }
    
  9. Kliknij dwukrotnie plik Main.storyboard , aby edytować w programie Xcode. Zaznacz pole wyboru Okno i usuń zaznaczenie pola wyboru Is Initial Controller (Jest to spowodowane tym, że powyższy kod tworzy okno):

    Uncheck the Is Initial Controller checkbox in Xcode

    Możesz edytować system menu w scenorysie, aby usunąć niechciane elementy.

  10. Na koniec dodaj wszystkie zasoby lokalne (np. pliki obrazów) z istniejących projektów platformy, które są wymagane.

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