Configuración de la plataforma Mac

Antes de empezar, cree (o use un proyecto existente) Xamarin.Forms. Solo puede agregar aplicaciones Mac con Visual Studio para Mac.

Agregar un proyecto de macOS a Xamarin.Forms vídeo

Adición de una aplicación Mac

Siga estas instrucciones para agregar una aplicación Mac que se ejecutará en macOS Sierra y macOS El Capitan:

  1. En Visual Studio para Mac, haga clic con el botón derecho en la solución de Xamarin.Forms existente y elija Agregar > Agregar nuevo proyecto...

  2. En la ventana Nuevo proyecto elija Mac > App > Cocoa App y presione Siguiente.

  3. Escriba un Nombre de aplicación (y, opcionalmente, elija otro nombre para el elemento de acoplamiento) y presione Siguiente.

  4. Revise la configuración y presione Crear. Estos pasos se muestran a continuación:

    Animated instructions showing how to add a Cocoa app

  5. En el proyecto Mac, haga clic con el botón derecho en Paquetes > Agregar paquetes... para agregar el Xamarin.Forms NuGet. También debe actualizar los demás proyectos para que usen la misma versión del paquete NuGet de Xamarin.Forms.

  6. En el proyecto mac, haga clic con el botón derecho en Referencias y agregue una referencia al proyecto de Xamarin.Forms (proyecto compartido o proyecto de biblioteca de .NET Standard).

    Add a reference to the Xamarin.Forms shared code project

  7. Actualice Main.cs para inicializar el AppDelegate:

    static class MainClass
    {
        static void Main(string[] args)
        {
            NSApplication.Init();
            NSApplication.SharedApplication.Delegate = new AppDelegate(); // add this line
            NSApplication.Main(args);
        }
    }
    
  8. Actualice AppDelegate para inicializar Xamarin.Forms, crear una ventana y cargar la aplicación Xamarin.Forms (recuerde establecer un Titleadecuado). Si tiene otras dependencias que deben inicializarse, hazlo también aquí.

    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. Haga doble clic en Main.storyboard para editar en Xcode. Active la ventana de y desactive la casilla Es controlador inicial (esto se debe a que el código anterior crea una ventana):

    Uncheck the Is Initial Controller checkbox in Xcode

    Puede editar el sistema de menús en el guión gráfico para quitar elementos no deseados.

  10. Por último, agregue los recursos locales (por ejemplo, archivos de imagen) de los proyectos de plataforma existentes necesarios.

  11. El proyecto Mac ahora debería ejecutar el código de Xamarin.Forms en macOS.

Pasos siguientes

Aplicación de estilos

Con los cambios recientes realizados en OnPlatform ahora puede tener como destino cualquier número de plataformas. Esto incluye 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>

Tenga en cuenta que también puede duplicar en plataformas como esta: <On Platform="iOS, macOS" ...>.

Tamaño y posición de la ventana

Puede ajustar el tamaño inicial y la ubicación de la ventana en el AppDelegate:

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

Problemas conocidos

Se trata de una versión preliminar, por lo que debe esperar que no todo esté listo para producción. A continuación se muestran algunas cosas que puede encontrar al agregar macOS a los proyectos:

No todos los NuGets están listos para macOS

Es posible que encuentre que algunas de las bibliotecas que usa aún no admiten macOS. En este caso, deberá enviar una solicitud al mantenedor del proyecto para agregarla. Hasta que tengan soporte técnico, es posible que tenga que buscar alternativas.

Faltan características de Xamarin.Forms

No todas las características de Xamarin.Forms se completan en esta versión preliminar. Para obtener más información, consulte de estado de macOS admitido con la plataforma en el repositorio de GitHub de Xamarin.Forms.