Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6658329
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Android平台

2017-10-18 21:59:12

令人惊讶的是,您现在可以通过对Xamarin.Forms解决方案进行一些调整来运行本机macOS应用程序。 而我必须说“应用程序”,因为那是桌面,对吧?

正如我在上周的Xamarin.Forms 2.3.5预发布公告中所说的,XAMarin.Forms中的macOS支持现在已经在Preview中了。 我们来试试将这个新项目添加到现有的Xamarin.Forms解决方案中,您可能面临的障碍以及当前和将来的平台功能状态。

配置一个macOS项目

D开发macOS是一个Mac的功能,所以同样的规则适用于当你在做一个Xamarin.Mac应用程序。 这里有一个很好的Xamarin.Mac指南,涵盖了先决条件。

当您将XAMarin.Forms macOS项目集成到一个持续的集成系统中,您可以轻松地在Windows上为MacOS构建,就像您现在可以使用iOS一样。

添加可可应用程序项目

直到Xamarin.Forms模板添加一个Cocoa应用程序,我们可以很容易地添加它自己。 要在Xamarin.Studio或Visual Studio for Mac中执行此操作,请在解决方案中添加一个新项目,然后选择Mac> App> Cocoa App。

Adding macOS Project

配置项目

Cocoa应用程序模板配置了一个故事板实现,您将不需要它。 您可以将其留在那里,但是当应用程序运行时,最终会出现两个窗口。

以下是您需要做的快速列表:

  • 添加 预览发布NuGet。
  • 在您的macOS项目中,添加对您的Xamarin.Forms项目(共享或PCL)的引用
  • 导入任何资源,如图像或字体
  • 编辑info.plist并删除源条目(NSMainStoryboardFile)
    info.plist
  • 更新Main.cs以初始化AppDelegate

    点击(此处)折叠或打开

    1. static class MainClass
    2. {
    3.     static void Main(string[] args)
    4.     {
    5.         NSApplication.Init();
    6.         NSApplication.SharedApplication.Delegate = new AppDelegate();
    7.         NSApplication.Main(args);
    8.     }
    9. }


  • 更新AppDelegate以初始化Xamarin.Forms,创建一个窗口,并加载Forms App
    • 如果您有其他依赖关系需要初始化,请在此处执行。

运行

将macOS项目作为启动,运行它。瞧! 你现在有一个本地macOS应用程序!

Example of Sample Weather App

下一步是什么?

现在你有一个应用程序,现在是时候放上你的UX Designer帽子,并开始探索你需要在这个新的桌面环境中感受更多的变化。

造型

运行您的XAMarin.Forms UI for MacOS。 手机上使用的相同样式可能看起来不正确。 这很容易更新!

随着近期对OnPlatform的更改,您现在可以定位任意数量的平台。 那包括macOS。

点击(此处)折叠或打开

  1. <Button.TextColor>
  2.     <OnPlatform x:TypeArguments="Color">
  3.         <On Platform="iOS" Value="White"/>
  4.         <On Platform="macOS" Value="White"/>
  5.         <On Platform="Android" Value="Black"/>
  6.     </OnPlatform>
  7. </Button.TextColor>


请注意,您还可以在“On Platform =”iOS,macOS“...>等平台上加倍。

窗口大小和位置

引导窗口是否太大? 太小? 在屏幕上发出奇怪的位置? 您可以在AppDelegate上调整所有这一行:

var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768);

已知的问题

这是一个预览,所以你应该期望不是一切都准备好了。 以下是您在项目中添加macOS时可能遇到的几件事情。

macOS上不是所有的NuGets都准备好了

为了在macOS项目中工作,软件包必须定位到xamarinmac20。 您可能会发现一些您心爱的图书馆还不支持macOS。 你能做什么? 请发送请求给项目的维护者添加。 在获得支持之前,您可能需要寻找替代品。

Xamarin.Forms功能

这个预览有惊人的Xamarin.Forms UI和功能的覆盖,但有一些已知的差距要注意。

尚未实现 :

  • OpenGlRenderer
  • ListView – ScrollTo, UnevenRows support, refreshing, SeparatorColor, SeparatorVisibility, Footer
  • ViewCell – IsEnabled, ForceUpdateSize
  • Image – Aspect
  • Picker – Bindable / Observable implementation
  • MasterDetailPage – BackgroundColor
  • TabbedPage – BarBackgroundColor, BarTextColor
  • TableView – UnevenRows
  • WebView – Most WebNavigationEvents
  • Navigation – InsertPageBefore

发送您的反馈!

将MacOS项目和预发行版添加到您的解决方案中,让我们知道您的想法。 你觉得缺少什么? 遇到什么问题?

为了快速开始,您可以抓住我在GitHub上更新的WeatherApp:

阅读(2853) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~