Spécifier l’idiome de l’interface utilisateur pour votre application Mac Catalyst
Une application Mobile Catalyst .NET multiplateforme (.NET MAUI) peut s’exécuter dans l’idiome de l’interface utilisateur iPad ou Mac :
- L’idiome de l’interface utilisateur iPad indique à macOS de mettre à l’échelle l’interface utilisateur de l’application pour qu’elle corresponde à l’environnement d’affichage mac tout en préservant l’apparence iPad.
- L’idiome de l’interface utilisateur Mac ne met pas à l’échelle l’interface utilisateur de l’application pour qu’elle corresponde à l’environnement d’affichage Mac. Certains contrôles modifient leur taille et leur apparence et interagissent avec eux se sentent identiques à l’interaction avec AppKit les contrôles. Par exemple, un élément UIButton apparaît identique à un NSButton.
Par défaut, les applications .NET MAUI Mac Catalyst utilisent l’idiome de l’interface utilisateur iPad. S’il s’agit de votre comportement souhaité, vérifiez que le fichier Info.plist de l’application spécifie uniquement 2 comme valeur de la UIDeviceFamily
clé :
<key>UIDeviceFamily</key>
<array>
<integer>2</integer>
</array>
Vous pouvez découvrir que l’adoption de l’interface utilisateur Mac améliore l’expérience utilisateur de votre application. Pour ce faire, mettez à jour le fichier Info.plist de votre application pour spécifier 6 comme valeur de la UIDeviceFamily
clé :
<key>UIDeviceFamily</key>
<array>
<integer>6</integer>
</array>
Important
L’idiome de l’interface utilisateur Mac nécessite macOS 11.0+. Par conséquent, pour l’utiliser, vous devez définir le SupportedOSPlatformVersion
fichier de votre projet sur au moins 14.0, qui est l’équivalent de mac Catalyst version de macOS 11.0.
L’adoption de l’idiome de l’interface utilisateur Mac peut vous obliger à apporter des modifications supplémentaires à votre application. Par exemple, si votre application utilise des images dimensionnées pour iPad ou qu’elle a des tailles codées en dur, vous devrez peut-être mettre à jour votre application pour tenir compte des différences de taille.
Avertissement
UIStepper, UIPickerViewet UIRefreshControl ne sont pas pris en charge dans l’idiome de l’interface utilisateur Mac par Apple. Cela signifie que les contrôles MAUI .NET qui consomment ces contrôles natifs (StepperPickeret RefreshView) ne peuvent pas être utilisés dans l’idiome de l’interface utilisateur Mac. Si vous tentez de le faire, une exception macOS est levée.
En outre, les contraintes suivantes s’appliquent dans l’idiome de l’interface utilisateur Mac :
- UISwitch lève une exception macOS lorsqu’il s’agit d’un titre défini dans une vue non Mac idiome.
- UIButtonlève une exception macOS lorsqu’elle AddGestureRecognizer est appelée, ou quand ou SetImage est SetTitle appelée pour n’importe quel état, sauf
UIControlStateNormal.Normal
. - UISliderlève une exception macOS lorsque les SetThumbImageméthodes , sont SetMaxTrackImageSetMinTrackImageappelées et lorsque les ThumbTintColorpropriétés , MinimumTrackTintColor, MaximumTrackTintColor, MinValueImagesont MaxValueImage définies.
Déterminer l’idiome de l’interface utilisateur
Il est possible de déterminer au moment de l’exécution quelle interface utilisateur idiome votre application .NET MAUI Mac Catalyst utilise. Pour ce faire, examinez la valeur de la UserInterfaceIdiom propriété sur votre UIViewController:
#if MACCATALYST
UIKit.UIViewController viewController = Platform.GetCurrentUIViewController();
if (viewController.TraitCollection.UserInterfaceIdiom == UIKit.UIUserInterfaceIdiom.Mac)
// Mac user interface idiom
else
// iPad user interface idiom
#endif
Voir aussi
- Choix d’une idiome d’interface utilisateur pour votre application Mac sur developer.apple.com.