我正在使用Visual Studio for Mac 7.6.6创建针对macOS的Xamarin.Forms应用程序(与Windows上运行的内容共享)。我创建一个新项目,然后选择
我该如何进行?我认为没有办法为此使用“新建项目”向导。
我遇到了old post,是从Xamarin Cocoa应用程序开始并使用NuGet来放置Xamarin Forms功能的,但是却不懂代码
LoadApplication(new App()); // <-- don't know what App is
我怀疑VS Mac和Xamarin.Forms处于不同步状态。有没有人得到这个工作?
答案 0 :(得分:3)
我建议遵循SushiHangover的建议,因为这很简单,这是您已经做过的事情:
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 for Mac确实包含带有Xamarin.Forms项目模板的Mac项目。但是,它当前不在“新项目”对话框中公开。您可以从此模板创建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"
创建一个包括Mac项目的新Forms项目(您可能要查看并设置其他模板参数-以下内容将使用Android,iOS,Mac,UWP和一个Shared项目创建一个空白Forms应用)。
dotnet new forms-app --CreateMacProject -k blank
在刚创建的项目的父目录中创建一个新的空白解决方案(其他-其他-空白解决方案)。
然后,您可以构建和运行包含Xamarin.Forms的Mac项目。
请注意,您可能希望从.NET Core项目模板中删除Xamarin.Forms项目模板,可以通过运行以下命令来完成该操作:
dotnet new --debug:reinit
答案 1 :(得分:2)
除了批准的答案(最近的更新不完整)之外,您现在还必须再执行一步。 在Mac项目的主类中链接delagate
main.cs:
static class MainClass
{
static void Main(string[] args)
{
NSApplication.Init();
NSApplication.SharedApplication.Delegate = new AppDelegate();
NSApplication.Main(args);
}
}
注意。我的编辑被拒绝,并且不允许添加评论。因此,我添加了一个补充性答案,以帮助那些现在寻求帮助的人。