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:
En Visual Studio para Mac, haga clic con el botón derecho en la solución existente Xamarin.Forms y elija 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 NuGet Xamarin.Forms . También debe actualizar los demás proyectos para que usen la misma versión del Xamarin.Forms paquete NuGet.
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).
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); } }
Actualice
AppDelegate
para inicializar Xamarin.Forms, cree una ventana y cargue la Xamarin.Forms aplicación (recuerde establecer un valor adecuadoTitle
). 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); } }
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):
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, los archivos de imagen) de los proyectos de plataforma existentes necesarios.
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.