指定 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、 UIPickerView 、 和 UIRefreshControl 在 Apple 的 Mac 使用者介面語中不受支援。 這表示取用這些原生控制項的 .NET MAUI 控制項 ( Stepper Picker 和 RefreshView ) 無法在 Mac 使用者介面慣用語中使用。 嘗試這樣做將會擲回 macOS 例外狀況。
此外,Mac 使用者介面語中會套用下列條件約束:
- UISwitch 在非 Mac 語式檢視中設定標題時,會擲回 macOS 例外狀況。
- UIButton 呼叫 或 呼叫 以外的 AddGestureRecognizer 任何狀態時 SetTitle SetImage ,會擲回 macOS 例外狀況
UIControlStateNormal.Normal
。 - UISlider當 SetThumbImage 呼叫 、 SetMinTrackImage 、 SetMaxTrackImage 方法,以及設定 、 MinimumTrackTintColor 、 MaximumTrackTintColor 、 MinValueImage MaxValueImage 屬性時 ThumbTintColor ,會擲回 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 應用程式 選擇使用者介面語式。