Compartir a través de


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.

Apple Watch que muestra un menú

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:

Editar un menú en tiempo de diseño

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 MenuItems 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.