Control de menú de watchOS (Force Touch) en Xamarin
Watch Kit proporciona un gesto Force Touch que desencadena un menú cuando se implementa en una pantalla de aplicación de inspección.
Responder a Force Touch
Si se ha implementado un elemento Menu
para un control de interfaz, cuando un usuario realiza una operación Force Touch, se mostrará el menú. Si no se ha implementado ningún menú, la pantalla se anima brevemente y no ocurre ninguna otra acción.
Los gestos Force Touch no están asociados a ningún elemento en particular en la pantalla; solo se puede adjuntar un menú a un control de interfaz y este aparecerá, independientemente de dónde se produzca la pulsación Force Touch en la pantalla.
Se pueden presentar entre una y cuatro opciones de menú.
Agregar un menú
Debe agregarse un Menu
a un elemento InterfaceController
en el guión gráfico en tiempo de diseño. Cuando se arrastra un control de menú a un control de interfaz, no hay ninguna indicación visual en la vista previa del guión gráfico, pero el menú aparece en el panel Esquema del documento:
Se pueden agregar hasta cuatro elementos de menú al control de menú. Se pueden configurar en el panel Propiedades. Se pueden establecer los atributos siguientes:
- Título, e
- Imagen personalizada, o
- Imagen del sistema: Aceptar, Agregar, Bloquear, Rechazar, Información, Quizá, Más, Silenciar, Pausar, Reproducir, Repetir, Reanudar, Compartir, Aleatorio, Altavoz, Eliminar.
Para crear una Action
, seleccione la sección Eventos del panel Propiedades y escriba el nombre del método de acción. Se creará un método parcial en el código, que se puede implementar en la clase de control de interfaz, de la siguiente manera:
partial void MenuItemTapped ()
{
Console.WriteLine ("A menu item was tapped.");
}
Custom Images
De forma similar a las imágenes de tabulación en iOS, las imágenes de elementos de menú requieren un patrón opaco con un canal alfa que permite que el fondo se vea.
Debe agregar las imágenes usadas para el menú al proyecto de aplicación del reloj (no el proyecto de extensión de aplicación del reloj) para obtener el mejor rendimiento.
Cambiar los elementos de menú
Agregar en tiempo de ejecución
No se puede agregar un elemento Menu
a un control de interfaz en tiempo de ejecución, aunque la colección de MenuItem
s se puede modificar mediante programación.
Use el método AddMenuItem
como se muestra:
AddMenuItem (WKMenuItemIcon.Accept, "Yes", new ObjCRuntime.Selector ("tapped"));
Actualmente, la API Xamarin.iOS Watch Kit requiere un selector
para el método AdMenuItem
, que debe declararse de la siguiente manera:
[Export("tapped")]
void MenuItemTapped ()
{
Console.WriteLine ("The dynamically added 'Yes' menu item was tapped.");
}
Quitar en tiempo de ejecución
Se puede llamar al método ClearAllMenuItems
para quitar todos los elementos de menú agregados mediante programación.
No se pueden borrar los elementos de menú configurados en el guión gráfico.