Configuration de la plateforme Mac
Avant de commencer, créez (ou utilisez un projet existant). Xamarin.Forms Vous pouvez uniquement ajouter des applications Mac à l’aide de Visual Studio pour Mac.
Ajout d’un projet macOS à la Xamarin.Forms vidéo
Ajout d’une application Mac
Suivez ces instructions pour ajouter une application Mac qui s’exécutera sur macOS Sierra et macOS El Capitan :
Dans Visual Studio pour Mac, cliquez avec le bouton droit sur la solution existante Xamarin.Forms et choisissez Ajouter > un nouveau projet...
Dans la fenêtre Nouveau projet, choisissez Application > Mac > Cocoa App, puis appuyez sur Suivant.
Tapez un nom d’application (et choisissez éventuellement un autre nom pour l’élément d’accueil), puis appuyez sur Suivant.
Passez en revue la configuration et appuyez sur Créer. Ces étapes sont indiquées ci-dessous :
Dans le projet Mac, cliquez avec le bouton droit sur Packages > Ajouter des packages... pour ajouter nuGet Xamarin.Forms . Vous devez également mettre à jour les autres projets pour utiliser la même version du Xamarin.Forms package NuGet.
Dans le projet Mac, cliquez avec le bouton droit sur Références et ajoutez une référence au Xamarin.Forms projet (Projet partagé ou projet de bibliothèque .NET Standard).
Mettez à jour Main.cs pour initialiser :
AppDelegate
static class MainClass { static void Main(string[] args) { NSApplication.Init(); NSApplication.SharedApplication.Delegate = new AppDelegate(); // add this line NSApplication.Main(args); } }
Mettez à jour
AppDelegate
pour initialiser Xamarin.Forms, créer une fenêtre et charger l’application Xamarin.Forms (n’oubliez pas de définir une valeur appropriéeTitle
). Si vous avez d’autres dépendances qui doivent être initialisées, faites-le également ici.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); } }
Double-cliquez sur Main.storyboard pour modifier dans Xcode. Sélectionnez la fenêtre et décochez la case Est le contrôleur initial (car le code ci-dessus crée une fenêtre) :
Vous pouvez modifier le système de menus dans le storyboard pour supprimer les éléments indésirables.
Enfin, ajoutez des ressources locales (par exemple, des fichiers image) à partir des projets de plateforme existants requis.
Le projet Mac doit maintenant exécuter votre Xamarin.Forms code sur macOS !
Étapes suivantes
Style
Avec les modifications récentes apportées à OnPlatform
vous pouvez désormais cibler n’importe quel nombre de plateformes. Cela inclut 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>
Notez que vous pouvez également doubler sur des plateformes telles que : <On Platform="iOS, macOS" ...>
.
Taille et position de la fenêtre
Vous pouvez ajuster la taille et l’emplacement initiaux de la fenêtre dans :AppDelegate
var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768); // x, y, width, height
Problèmes connus
Il s’agit d’une préversion. Vous devez donc vous attendre à ce que tout ne soit pas prêt en production. Voici quelques éléments que vous pouvez rencontrer lorsque vous ajoutez macOS à vos projets :
Tous les NuGets ne sont pas prêts pour macOS
Vous constaterez peut-être que certaines des bibliothèques que vous utilisez ne prennent pas encore en charge macOS. Dans ce cas, vous devez envoyer une demande au responsable du projet pour l’ajouter. Tant qu’ils n’ont pas de support, vous devrez peut-être rechercher des alternatives.
Fonctionnalités manquantes Xamarin.Forms
Toutes les Xamarin.Forms fonctionnalités ne sont pas complètes dans cette préversion. Pour plus d’informations, consultez État de la prise en charge de la plateforme macOS dans le Xamarin.Forms dépôt GitHub.