Configuración de la plataforma Mac

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

Adición de un proyecto de macOS al 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 existente y elija Xamarin.Forms Agregar > Agregar Project...

  2. En la ventana Project, elija Mac > App > Cocoa App y presione Siguiente.

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

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

    Instrucciones animadas que muestran cómo agregar una aplicación cocoa.

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

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

    Agregue una referencia al proyecto de código compartido Xamarin.Forms .

  7. Actualice Main.cs para inicializar 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 Xamarin.Forms inicializar , crear una ventana y cargar la Xamarin.Forms aplicación (recordando establecer una Title adecuada). Si tiene otras dependencias que deben inicializarse, haga esto 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 y desactive la casilla Is Initial Controller (Es controlador inicial) (esto se debe a que el código anterior crea una ventana):

    Desactive la casilla Is Initial Controller (Es controlador inicial) en 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 que son necesarios.

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

Pasos siguientes

Estilos

Con los cambios recientes realizados OnPlatform en , ahora puede dirigirse a 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 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 NuGet están listos para macOS

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

Características que Xamarin.Forms faltan

No todas Xamarin.Forms las características están completas en esta versión preliminar. Para obtener más información, consulte Platform Support macOS Status (Estado de macOS de compatibilidad con la Xamarin.Forms plataforma) GitHub repositorio.