Настройка платформы Mac
Перед началом создайте (или используйте существующий) Xamarin.Forms проект. Приложения Mac можно добавлять только с помощью Visual Studio для Mac.
Добавление проекта macOS в Xamarin.Forms видео
Добавление приложения Mac
Следуйте этим инструкциям, чтобы добавить приложение Mac, которое будет работать в macOS Sierra и macOS El Capitan:
В Visual Studio для Mac щелкните правой кнопкой мыши существующее Xamarin.Forms решение и выберите добавить > новый проект...
В окне "Новый проект" выберите > приложение Mac App > Cocoa и нажмите кнопку "Далее".
Введите имя приложения (и при необходимости выберите другое имя для элемента док-станции), а затем нажмите кнопку "Далее".
Просмотрите конфигурацию и нажмите клавишу CREATE. Ниже приведены следующие действия.
В проекте Mac щелкните правой кнопкой мыши пакеты "Добавить пакеты > ", чтобы добавить Xamarin.Forms NuGet. Кроме того, следует обновить другие проекты, чтобы использовать ту же версию Xamarin.Forms пакета NuGet.
В проекте Mac щелкните правой кнопкой мыши ссылки и добавьте ссылку на Xamarin.Forms проект (общий проект или проект библиотеки .NET Standard).
Обновление Main.cs для инициализации
AppDelegate
:static class MainClass { static void Main(string[] args) { NSApplication.Init(); NSApplication.SharedApplication.Delegate = new AppDelegate(); // add this line NSApplication.Main(args); } }
Обновите
AppDelegate
для инициализации Xamarin.Forms, создайте окно и загрузите Xamarin.Forms приложение (не забудьте задать соответствующийTitle
параметр). Если у вас есть другие зависимости, которые необходимо инициализировать, сделайте это здесь также.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); } }
Дважды щелкните Main.storyboard для редактирования в Xcode. Выберите окно и un проверка поле "Начальный контроллер" проверка (это связано с тем, что приведенный выше код создает окно):
Вы можете изменить систему меню в раскадровке, чтобы удалить нежелательные элементы.
Наконец, добавьте все локальные ресурсы (например, файлы изображений) из существующих проектов платформы, необходимых.
Теперь проект Mac должен запустить Xamarin.Forms код в macOS!
Next Steps
Стили
С помощью последних изменений, внесенных в эту версию OnPlatform
, теперь можно нацелиться на любое количество платформ. Это включает 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>
Обратите внимание, что вы также можете удвоиться на платформах, как показано ниже <On Platform="iOS, macOS" ...>
.
Размер окна и положение
Вы можете настроить начальный размер и расположение окна в следующих AppDelegate
элементах:
var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768); // x, y, width, height
Известные проблемы
Это предварительная версия, поэтому следует ожидать, что не все готово к работе. Ниже приведены некоторые моменты, которые могут возникнуть при добавлении macOS в проекты:
Не все NuGet готовы к работе с macOS
Возможно, некоторые из используемых библиотек еще не поддерживают macOS. В этом случае необходимо отправить запрос в поддержку проекта, чтобы добавить его. До тех пор, пока у них не будет поддержки, вам может потребоваться найти альтернативные варианты.
Отсутствующие Xamarin.Forms функции
В этой предварительной версии не все Xamarin.Forms функции завершены. Дополнительные сведения см. в разделе "Состояние macOS для поддержки платформы" в репозитории Xamarin.Forms GitHub.