Configurazione della piattaforma Mac

Prima di iniziare, creare o usare un progetto esistente Xamarin.Forms . È possibile aggiungere app Mac solo usando Visual Studio per Mac.

Aggiunta di un progetto macOS al Xamarin.Forms video

Aggiunta di un'app Mac

Seguire queste istruzioni per aggiungere un'app Mac che verrà eseguita in macOS Sierra e macOS El Capitan:

  1. In Visual Studio per Mac fare clic con il pulsante destro del mouse sulla soluzione esistente Xamarin.Forms e scegliere Aggiungi > nuovo progetto...

  2. Nella finestra Nuovo progetto scegliere Mac > App Cocoa App > e premere Avanti.

  3. Digitare un Nome app (e, facoltativamente, scegliere un nome diverso per l'elemento dock), quindi premere Avanti.

  4. Esaminare la configurazione e premere Crea. Questi passaggi sono illustrati di seguito:

    Animated instructions showing how to add a Cocoa app

  5. Nel progetto Mac fare clic con il pulsante destro del mouse su Pacchetti Aggiungi pacchetti > per aggiungere Xamarin.Forms NuGet. È anche consigliabile aggiornare gli altri progetti per usare la stessa versione del Xamarin.Forms pacchetto NuGet.

  6. Nel progetto Mac fare clic con il pulsante destro del mouse su Riferimenti e aggiungere un riferimento al Xamarin.Forms progetto (progetto condiviso o libreria .NET Standard).

    Add a reference to the Xamarin.Forms shared code project

  7. Aggiornare Main.cs per inizializzare :AppDelegate

    static class MainClass
    {
        static void Main(string[] args)
        {
            NSApplication.Init();
            NSApplication.SharedApplication.Delegate = new AppDelegate(); // add this line
            NSApplication.Main(args);
        }
    }
    
  8. Eseguire l'aggiornamento AppDelegate per inizializzare Xamarin.Forms, creare una finestra e caricare l'applicazione Xamarin.Forms (ricordando di impostare un valore appropriato Title). Se sono presenti altre dipendenze che devono essere inizializzate, eseguire questa operazione anche qui.

    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. Fare doppio clic su Main.storyboard per modificare in Xcode. Selezionare la finestra e deselezionare la casella di controllo Is Initial Controller (il codice precedente crea una finestra):

    Uncheck the Is Initial Controller checkbox in Xcode

    È possibile modificare il sistema di menu nello storyboard per rimuovere gli elementi indesiderati.

  10. Aggiungere infine tutte le risorse locali (ad esempio i file di immagine) dai progetti di piattaforma esistenti necessari.

  11. Il progetto Mac dovrebbe ora eseguire il Xamarin.Forms codice in macOS.

Passaggi successivi

Applicazione stile in corso

Con le modifiche recenti apportate a OnPlatform è ora possibile scegliere come destinazione un numero qualsiasi di piattaforme. Che include 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>

Si noti che è anche possibile raddoppiare le piattaforme come il seguente: <On Platform="iOS, macOS" ...>.

Dimensioni e posizione della finestra

È possibile modificare le dimensioni iniziali e la posizione della finestra in AppDelegate:

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

Problemi noti

Si tratta di un'anteprima, quindi ci si dovrebbe aspettare che non tutto sia pronto per la produzione. Di seguito sono riportati alcuni aspetti che possono verificarsi durante l'aggiunta di macOS ai progetti:

Non tutti i NuGet sono pronti per macOS

È possibile che alcune delle librerie usate non supportino ancora macOS. In questo caso, è necessario inviare una richiesta al gestore del progetto per aggiungerla. Fino a quando non hanno supporto, potrebbe essere necessario cercare alternative.

Funzionalità mancanti Xamarin.Forms

Non tutte le Xamarin.Forms funzionalità sono state completate in questa anteprima. Per altre informazioni, vedere Platform Support macOS Status nel Xamarin.Forms repository GitHub.