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:
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...
En la ventana Nuevo proyecto elija Mac > App > Cocoa App y presione Siguiente.
Escriba un Nombre de aplicación (y, opcionalmente, elija otro nombre para el elemento de acoplamiento) y presione Siguiente.
Revise la configuración y presione Crear. Estos pasos se muestran a continuación:
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.
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).
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); } }
Actualice
AppDelegate
para inicializar Xamarin.Forms, crear una ventana y cargar la aplicación Xamarin.Forms (recuerde establecer unTitle
adecuado). 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); } }
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):
Puede editar el sistema de menús en el guión gráfico para quitar elementos no deseados.
Por último, agregue los recursos locales (por ejemplo, archivos de imagen) de los proyectos de plataforma existentes necesarios.
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.