Configuración de la plataforma Mac

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

Adición de 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 existente Xamarin.Forms y elija 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:

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

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

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

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

  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 inicializar Xamarin.Forms, cree una ventana y cargue la Xamarin.Forms aplicación (recuerde establecer un valor adecuado Title). Si tiene otras dependencias que deben inicializarse, hála 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 decir, porque 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, los archivos de imagen) de los proyectos de plataforma existentes necesarios.

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

Pasos siguientes

Estilos

Con los cambios recientes realizados en ahora puede dirigirse a OnPlatform 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 duplicarse 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 mantenedor del proyecto para agregarla. Hasta que tengan soporte técnico, es posible que tenga que buscar alternativas.

Características que faltan Xamarin.Forms

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