Partager via


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 :

  1. Dans Visual Studio pour Mac, cliquez avec le bouton droit sur la solution existante Xamarin.Forms et choisissez Ajouter > un nouveau projet...

  2. Dans la fenêtre Nouveau projet, choisissez Application > Mac > Cocoa App, puis appuyez sur Suivant.

  3. Tapez un nom d’application (et choisissez éventuellement un autre nom pour l’élément d’accueil), puis appuyez sur Suivant.

  4. Passez en revue la configuration et appuyez sur Créer. Ces étapes sont indiquées ci-dessous :

    Instructions animées montrant comment ajouter une application Cocoa

  5. 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.

  6. 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).

    Ajouter une référence au projet de Xamarin.Forms code partagé

  7. 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);
        }
    }
    
  8. 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ée Title). 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);
        }
    }
    
  9. 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) :

    Décochez la case Est le contrôleur initial dans Xcode

    Vous pouvez modifier le système de menus dans le storyboard pour supprimer les éléments indésirables.

  10. Enfin, ajoutez des ressources locales (par exemple, des fichiers image) à partir des projets de plateforme existants requis.

  11. 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.