.Net MAUI 项目中无法识别 AppKit 命名空间的问题

问题描述 投票:0回答:1

我在下载了 macOS 14.0 和 Visual Studio 2022 For Mac 以及最新版本的 XCode (15.0.1) 后创建了一个 .Net MAUI 项目。项目模板未进行任何更改,并且该项目能够在 Visual Studio For Mac 中作为 Mac 桌面应用程序运行。但由于某种原因,它无法识别“using AppKit;”当我尝试将其添加到 MainPage.xaml.cs 文件的顶部时,声明。它甚至在智能感知中拾取它,但仍然给我“找不到类型或命名空间‘AppKit’,您是否缺少 using 指令或程序集引用?”错误。该项目面向 .Net 7.0,net7.0-maccatalyst 列在解决方案资源管理器的“依赖项”下。 SDK 管理器将 Apple 和我的 XCode 安装位置列为位置。

如有任何帮助,我们将不胜感激。

我尝试重新安装 Visual Studio 2022 For Mac 以及 XCode,并尝试从 .Net MAUI 模板创建新项目并反复重新启动和清理/重建。没有运气。

xcode maui visual-studio-mac maui-community-toolkit
1个回答
0
投票

.NET MAUI 使用 Mac Catalyst 来支持 Mac。 Mac Catalyst 是 Apple 将 UIKit 移植到 Mac 上的版本,因此您可以制作 iPad 应用程序的 Mac 版本。 Catalyst 实现了 AppKit 的部分功能,但是非常有限,使用 Catalyst 时无法直接访问 AppKit。

但是,可以通过制作插件或使用动态库从 Catalyst 访问 AppKit。本博客文章中显示的两种方法: 如何从 Mac Catalyst 应用程序访问 AppKit API。使用它来创建 Swift 库,然后使用 Objective Sharpie 来创建 C# 包装器,以便您可以从 .NET MAUI 访问 Swift 库。 Microsoft 有关于如何绑定 iOS Swift 库的演练。

额外提示:只要您知道通知名称,就可以直接从 .NET MAUI 监听 AppKit 通知:

NSObject notificationToken = NSNotificationCenter.DefaultCenter.AddObserver(new NSString("NSApplicationDidChangeScreenParametersNotification"), CatalystNumberOfScreensChanged);

private void CatalystNumberOfScreensChanged(NSNotification notification) 
{
    // Do something
}
© www.soinside.com 2019 - 2024. All rights reserved.