Especificación el tipo de interfaz de usuario para su aplicación de Mac Catalyst
Una aplicación de interfaz de usuario de aplicaciones multiplataforma de .NET (.NET MAUI) de Mac Catalyst se puede ejecutar en el tipo de interfaz de usuario de iPad o Mac:
- El tipo de interfaz de usuario de iPad indica a macOS que escale la interfaz de usuario de la aplicación para que coincida con el entorno de visualización de Mac, a la vez que se conserva el aspecto del iPad.
- El tipo de interfaz de usuario de Mac no escala la interfaz de usuario de la aplicación para que coincida con el entorno de visualización de Mac. Algunos controles cambian su tamaño y aspecto, por lo que interactuar con ellos parece idéntico a la interacción con los controles de AppKit. Por ejemplo, un UIButton parece idéntico a un NSButton.
De forma predeterminada, las aplicaciones .NET MAUI de Mac Catalyst usan el tipo de interfaz de usuario de iPad. Si este es el comportamiento que desea, asegúrese de que el archivo Info.plist de la aplicación solo especifica 2 como valor de la clave UIDeviceFamily
:
<key>UIDeviceFamily</key>
<array>
<integer>2</integer>
</array>
Puede que descubra que la adopción del tipo de interfaz de usuario de Mac mejora la experiencia del usuario de su aplicación. Para hacerlo, actualizar el archivo Info.plist de su aplicación y especificar 6 como el valor de la clave UIDeviceFamily
:
<key>UIDeviceFamily</key>
<array>
<integer>6</integer>
</array>
Importante
El tipo de interfaz de usuario de Mac requiere macOS 11.0 o versiones posteriores. Por lo tanto, para usarlo, deberá establecer la SupportedOSPlatformVersion
en el archivo del proyecto a al menos 14.0, que es la versión de Mac Catalyst equivalente a macOS 11.0.
La adopción de un tipo de interfaz de usuario de Mac puede requerir que realice cambios adicionales en su aplicación. Por ejemplo, si la aplicación usa imágenes con tamaño adaptado para iPad o tiene tamaños codificados de forma rígida, puede que deba actualizar la aplicación para adaptarse a las diferencias de tamaño.
Advertencia
UIStepperApple no admite , UIPickerViewni UIRefreshControl en la expresión de interfaz de usuario de Mac. Esto significa que los controles MAUI de .NET que consumen estos controles nativos (Steppery Picker RefreshView) no se pueden usar en la expresión de la interfaz de usuario de Mac. Si intenta hacerlo, se producirá una excepción de macOS.
Además, se aplican las restricciones siguientes en la expresión de interfaz de usuario de Mac:
- UISwitch produce una excepción de macOS cuando se establece el título en una vista no mac.
- UIButton produce una excepción de macOS cuando AddGestureRecognizer se llama a o cuando SetTitle se llama a o SetImage para cualquier estado excepto
UIControlStateNormal.Normal
. - UISliderproduce una excepción de macOS cuando se llama a los SetThumbImagemétodos , SetMaxTrackImage SetMinTrackImagey cuando se establecen las ThumbTintColorpropiedades , MinimumTrackTintColorMaximumTrackTintColor, , MinValueImagey MaxValueImage .
Determinación del tipo de interfaz de usuario
Es posible determinar en el tiempo de ejecución qué tipo de interfaz de usuario usa su aplicación .NET MAUI de Mac Catalyst. Esto se puede lograr al examinar el valor de la propiedad UserInterfaceIdiom en su 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
Consulte también
- Elección de un tipo de interfaz de usuario en la aplicación Mac en developer.apple.com.