为 Mac Catalyst 应用指定 UI 成语
.NET 多平台应用 UI (.NET MAUI) Mac Catalyst 应用可以在 iPad 或 Mac 用户界面中运行:
- iPad 用户界面风格会告诉 macOS 缩放应用的用户界面,以匹配 Mac 显示环境,同时保留类似 iPad 的外观。
- Mac 用户界面风格不会缩放应用的用户界面以匹配 Mac 显示环境。 某些控件会更改其大小和外观,与它们交互的感觉和与 AppKit 控件交互的感觉相同。 例如,看起来 UIButton 与 . NSButton.
默认情况下,.NET MAUI Mac Catalyst 应用使用 iPad 用户界面风格。 如果这是你想要的行为,请确保应用的 Info.plist 文件仅将 2 指定为 UIDeviceFamily
键的值:
<key>UIDeviceFamily</key>
<array>
<integer>2</integer>
</array>
你可能会发现采用 Mac 用户界面成语可以增强应用的用户体验。 为此,请更新应用的 Info.plist 文件以将 6 指定为键的值 UIDeviceFamily
:
<key>UIDeviceFamily</key>
<array>
<integer>6</integer>
</array>
重要
Mac 用户界面成语需要 macOS 11.0+。 因此,若要使用它,需要 SupportedOSPlatformVersion
将项目文件中的至少设置为 14.0,这是 macOS 11.0 的 Mac Catalyst 版本。
采用 Mac 用户界面成语可能需要对应用进行其他更改。 例如,如果你的应用使用大小为 iPad 的图像,或者具有硬编码大小,则可能需要更新应用以适应大小差异。
警告
UIStepper, UIPickerViewApple UIRefreshControl 不支持 Mac 用户界面成语。 这意味着使用这些本机控件的 .NET MAUI 控件(StepperPicker和RefreshView)不能在 Mac 用户界面中使用。 尝试这样做将引发 macOS 异常。
此外,Mac 用户界面成语中还应用了以下约束:
- UISwitch 在非 Mac 成语视图中设置游戏时,引发 macOS 异常。
- UIButton调用 macOS 异常或调用除任何状态以外的AddGestureRecognizer
UIControlStateNormal.Normal
任何状态时SetTitle或SetImage调用时引发 macOS 异常。 - UISlider调用方法以及设置属性时SetThumbImageMaximumTrackTintColorSetMaxTrackImageMaxValueImageSetMinTrackImageThumbTintColorMinimumTrackTintColorMinValueImage,将引发 macOS 异常。
确定用户界面成语
可以在运行时确定 .NET MAUI Mac Catalyst 应用正在使用的用户界面。 可以通过检查以下UIViewController属性的值UserInterfaceIdiom来实现此目的:
#if MACCATALYST
UIKit.UIViewController viewController = Platform.GetCurrentUIViewController();
if (viewController.TraitCollection.UserInterfaceIdiom == UIKit.UIUserInterfaceIdiom.Mac)
// Mac user interface idiom
else
// iPad user interface idiom
#endif
另请参阅
- 在 developer.apple.com 上为 Mac 应用 选择用户界面成语。