Compartilhar via


Configuração da Plataforma Mac

Antes de começar, crie (ou use um projeto existente). Xamarin.Forms Você só pode adicionar aplicativos Mac usando Visual Studio para Mac.

Adicionando um projeto macOS ao Xamarin.Forms vídeo

Adicionando um aplicativo Mac

Siga estas instruções para adicionar um aplicativo Mac que será executado no macOS Sierra e no macOS El Capitan:

  1. Em Visual Studio para Mac, clique com o botão direito do mouse na solução existente Xamarin.Forms e escolha Adicionar Adicionar > Novo Projeto...

  2. Na janela Novo Projeto , escolha Aplicativo Mac >> Cocoa App e pressione Avançar.

  3. Digite um Nome do Aplicativo (e, opcionalmente, escolha um nome diferente para o Item de Encaixe) e pressione Avançar.

  4. Examine a configuração e pressione Criar. Estas etapas são mostradas abaixo:

    Instruções animadas mostrando como adicionar um aplicativo Cocoa

  5. No projeto Mac, clique com o botão direito do mouse em Pacotes > Adicionar Pacotes... para adicionar o Xamarin.Forms NuGet. Você também deve atualizar os outros projetos para usar a mesma versão do Xamarin.Forms pacote NuGet.

  6. No projeto Mac, clique com o botão direito do mouse em Referências e adicione uma referência ao Xamarin.Forms projeto (projeto compartilhado ou projeto de biblioteca .NET Standard).

    Adicionar uma referência ao Xamarin.Forms projeto de código compartilhado

  7. Atualize Main.cs para inicializar o AppDelegate:

    static class MainClass
    {
        static void Main(string[] args)
        {
            NSApplication.Init();
            NSApplication.SharedApplication.Delegate = new AppDelegate(); // add this line
            NSApplication.Main(args);
        }
    }
    
  8. Atualize para inicializar Xamarin.Forms, crie uma janela e carregue o Xamarin.Forms aplicativo (lembrando de definir um apropriadoTitle).AppDelegate Se você tiver outras dependências que precisam ser inicializadas, faça isso aqui também.

    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. Clique duas vezes em Main.storyboard para editar no Xcode. Marque a janela e desmarque a caixa de seleção Controlador Inicial (isso ocorre porque o código acima cria uma janela):

    Desmarque a caixa de seleção Controlador Inicial no Xcode

    Você pode editar o sistema de menus no storyboard para remover itens indesejados.

  10. Por fim, adicione todos os recursos locais (por exemplo, arquivos de imagem) dos projetos de plataforma existentes que são necessários.

  11. O projeto mac agora deve executar seu Xamarin.Forms código no macOS!

Próximas etapas

Estilo

Com as alterações recentes feitas, OnPlatform agora você pode direcionar qualquer número de plataformas. Isso inclui o 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>

Observe que você também pode dobrar em plataformas como esta: <On Platform="iOS, macOS" ...>.

Tamanho e posição da janela

Você pode ajustar o tamanho inicial e o local da janela no AppDelegate:

var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768);  // x, y, width, height

Problemas conhecidos

Essa é uma versão prévia, portanto, você deve esperar que nem tudo esteja pronto para produção. Abaixo estão algumas coisas que você pode encontrar ao adicionar o macOS aos seus projetos:

Nem todos os NuGets estão prontos para macOS

Você pode descobrir que algumas das bibliotecas que você usa ainda não dão suporte ao macOS. Nesse caso, você precisará enviar uma solicitação ao mantenedor do projeto para adicioná-la. Até que eles tenham suporte, talvez seja necessário procurar alternativas.

Recursos ausentes Xamarin.Forms

Nem todos os Xamarin.Forms recursos estão completos nesta versão prévia. Para obter mais informações, consulte Suporte à plataforma status do macOS no repositório GitHub Xamarin.Forms .