gpt4 book ai didi

macos - 面向 macOS 的 Xamarin.Forms

转载 作者:行者123 更新时间:2023-12-01 16:52:44 25 4
gpt4 key购买 nike

我正在使用 Visual Studio for Mac 7.6.6 创建一个面向 macOS 的 Xamarin.Forms 应用程序(与在 Windows 上运行的东西共享)。我创建一个新项目并选择

  • 多平台应用 |空白表格应用程序。单击下一步
  • 配置您的空白表单应用程序。有目标平台:Android 和 iOS。
    (macOS 没有任何内容)。由于我没有为 iOS 和 android 安装构建工具包,这两个复选框都被禁用。因此,此向导页面上的下一步按钮被禁用。

  • 我该如何进行?我认为没有办法为此使用“新建项目”向导。

    我遇到了一个 old post,用于从 Xamarin Cocoa 应用程序开始并使用 NuGet 放置 Xamarin Forms 功能,但不了解代码
    LoadApplication(new App());  // <-- don't know what App is

    我怀疑 VS Mac 和 Xamarin.Forms 不同步处于前沿。有没有人让这个工作?

    最佳答案

    我建议遵循 SushiHangover 的建议,因为这更简单,这就是您已经完成的:

  • 将新的 CocoaApp 项目添加到您的解决方案中。
  • 将 Xamarin.Forms NuGet 包安装到 CocoaApp 中。
  • 从您的 CocoaApp 项目中引用共享项目或 .NET Standard 项目。
  • 编辑 info.plist 并删除源条目 (NSMainStoryboardFile)。
  • 将 AppDelegate 更改为派生自 Xamarin.Forms.Platform.MacOS.FormsApplicationDelegate。
  • 更新 Main.cs 以初始化 AppDelegate
  • 在 AppDelegate 的 DidFinishLaunching 中添加代码以初始化 Xamarin.Forms。
  • 创建一个新的 NSWindow,它应该从 AppDelegate 的 MainWindow 属性返回。

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

    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"
  • 创建一个新的 Forms 项目,包括 Mac 项目(您可能想要查看和设置其他模板参数 - 下面创建一个带有 Android、iOS、Mac、UWP 和共享项目的空白 Forms 应用程序)。
    dotnet new forms-app --CreateMacProject -k blank
  • 在刚刚创建的项目的父目录下新建一个空白解决方案(Other - Miscellaneous - Blank Solution)。
  • 将所有创建的项目添加到解决方案中。

  • 然后你可以构建和运行包含 Xamarin.Forms 的 Mac 项目。

    请注意,您可能希望从 .NET Core 项目模板中删除 Xamarin.Forms 项目模板,您可以通过运行以下命令来执行此操作:
    dotnet new --debug:reinit

    关于macos - 面向 macOS 的 Xamarin.Forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52415863/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com