共用方式為


指定 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 調整大小的影像,或具有硬式編碼大小,您可能需要更新應用程式以因應大小差異。

警告

UIStepperUIPickerView 、 和 UIRefreshControl 在 Apple 的 Mac 使用者介面語中不受支援。 這表示取用這些原生控制項的 .NET MAUI 控制項 ( Stepper PickerRefreshView ) 無法在 Mac 使用者介面慣用語中使用。 嘗試這樣做將會擲回 macOS 例外狀況。

此外,Mac 使用者介面語中會套用下列條件約束:

判斷使用者介面語式

您可以在執行時間判斷您的 .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

另請參閱