Xamarin. Формы для MacOS - PullRequest
       18

Xamarin. Формы для MacOS

0 голосов
/ 20 сентября 2018

Я использую Visual Studio для Mac 7.6.6 для создания приложения Xamarin.Forms, ориентированного на macOS (для совместного использования с чем-то, работающим в Windows).Я создаю новый проект и выбираю

  1. Мультиплатформенное приложение |Бланк Формы App.Нажмите Далее
  2. Настройте приложение пустых форм.Есть целевые платформы: Android и iOS.(Нет ничего для macOS).Поскольку я не установил инструментарий сборки ни для iOS, ни для Android, оба эти флажка отключены.Поэтому кнопка «Далее» на этой странице мастера отключена.

Как продолжить?Я предполагаю, что нет никакого способа использовать мастер New Project для этого.

Я наткнулся на старый пост для запуска с приложением Xamarin Cocoa и использования NuGet для добавления функциональности Xamarin Forms, ноне понимаю код

LoadApplication(new App());  // <-- don't know what App is

Я подозреваю, что VS Mac и Xamarin.Формы не синхронизированы и находятся на переднем крае.Кто-нибудь заставил это работать?

Ответы [ 2 ]

0 голосов
/ 02 августа 2019

В дополнение к утвержденному ответу, который является неполным с последними обновлениями, теперь вам нужно сделать еще один шаг.Свяжите дело в главном классе проекта Mac

main.cs:

static class MainClass
{
   static void Main(string[] args)
   {
       NSApplication.Init();
       NSApplication.SharedApplication.Delegate = new AppDelegate();
       NSApplication.Main(args);
    }
}

nota.В моем редактировании было отказано, и я не могу добавлять комментарии.Поэтому я добавил дополнительный ответ, чтобы помочь тем, кто ищет помощи сейчас.

0 голосов
/ 20 сентября 2018

Я бы посоветовал последовать предложению SushiHangover, поскольку это проще, чем то, что вы уже сделали:

  1. Добавьте новый проект CocoaApp в ваше решение.
  2. Установите Xamarin.Forms NuGetпакет в ваш CocoaApp.
  3. Ссылка на общий проект или проект .NET Standard из вашего проекта CocoaApp.
  4. Отредактируйте info.plist и удалите исходную запись (NSMainStoryboardFile).
  5. Измените AppDelegate для получения из Xamarin.Forms.Platform.MacOS.FormsApplicationDelegate.
  6. В поле DidFinishLaunching AppDelegate добавьте код для инициализации Xamarin.Forms.
  7. Создайте новое окно NSWindow, которое должно быть возвращено изсвойство MainWindow в AppDelegate.

AppDelegate.cs:

[Register("AppDelegate")]
public class AppDelegate : Xamarin.Forms.Platform.MacOS.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!";
        window.TitleVisibility = NSWindowTitleVisibility.Hidden;
    }

    public override NSWindow MainWindow
    {
        get { return window; }
    }


    public override void DidFinishLaunching(NSNotification notification)
    {
        Xamarin.Forms.Forms.Init();
        LoadApplication(new App());

        base.DidFinishLaunching(notification);
    }

    public override void WillTerminate(NSNotification notification)
    {
        // Insert code here to tear down your application
    }
}

Однако Visual Studio для Mac включает проект Mac с шаблонами проектов Xamarin.Forms.Однако это не раскрывает это в диалоге New Project в настоящее время.Вы можете создать проект Mac Forms из этого шаблона, но это немного больше, чем то, что SushiHangover предложил и вы использовали.

  1. Установите шаблон проекта Xamarin.Forms в .NET Coreшаблоны проектов

    dotnet new --install "/Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/AddIns/Xamarin.Forms.Addin/Templates/Xamarin.Templates.Multiplatform.0.0.1.nupkg"

  2. Создайте новый проект Forms, включая проект Mac (вы можете просмотреть и задать другие параметры шаблона - ниже создаются пустые формыприложение с Android, iOS, Mac, UWP и общим проектом).

    dotnet new forms-app --CreateMacProject -k blank

  3. Создайте новое пустое решение (Другое - Разное - Пустое решение) вродительский каталог проектов, которые вы только что создали.

  4. Добавьте все эти проекты, созданные в решении.

Затем вы можете собрать и запустить проект Mac, который включает Xamarin.Forms.

Обратите внимание, что вы можете удалить шаблон проекта Xamarin.Forms из шаблонов проекта .NET Core, выполнив следующие действия:

dotnet new --debug:reinit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...