Я бы посоветовал последовать предложению SushiHangover, поскольку это проще, чем то, что вы уже сделали:
- Добавьте новый проект CocoaApp в ваше решение.
- Установите Xamarin.Forms NuGetпакет в ваш CocoaApp.
- Ссылка на общий проект или проект .NET Standard из вашего проекта CocoaApp.
- Отредактируйте info.plist и удалите исходную запись (NSMainStoryboardFile).
- Измените AppDelegate для получения из Xamarin.Forms.Platform.MacOS.FormsApplicationDelegate.
- В поле DidFinishLaunching AppDelegate добавьте код для инициализации Xamarin.Forms.
- Создайте новое окно 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 предложил и вы использовали.
Установите шаблон проекта 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"
Создайте новый проект Forms, включая проект Mac (вы можете просмотреть и задать другие параметры шаблона - ниже создаются пустые формыприложение с Android, iOS, Mac, UWP и общим проектом).
dotnet new forms-app --CreateMacProject -k blank
Создайте новое пустое решение (Другое - Разное - Пустое решение) вродительский каталог проектов, которые вы только что создали.
- Добавьте все эти проекты, созданные в решении.
Затем вы можете собрать и запустить проект Mac, который включает Xamarin.Forms.
Обратите внимание, что вы можете удалить шаблон проекта Xamarin.Forms из шаблонов проекта .NET Core, выполнив следующие действия:
dotnet new --debug:reinit