Partilhar via


Controle de menu watchOS (Force Touch) no Xamarin

O Watch Kit fornece um gesto Force Touch que aciona um menu quando implementado na tela de um aplicativo de relógio.

Apple Watch mostrando um menu

Respondendo ao Force Touch

Se um Menu tiver sido implementado para um controlador de interface, quando um usuário executar um Force Touch, o menu será exibido. Se nenhum menu tiver sido implementado, a tela será brevemente animada e nenhuma outra ação ocorrerá.

Os toques de força não estão associados a nenhum elemento específico na tela; apenas um menu pode ser anexado a um controlador de interface e ele aparecerá independentemente de onde a pressão Force Touch ocorre na tela.

Entre uma e quatro opções de menu podem ser apresentadas.

Adicionando um menu

Um Menu deve ser adicionado a um InterfaceController no storyboard em tempo de design. Quando um controle de menu é arrastado para um controlador de interface, não há nenhuma indicação visual na visualização do storyboard, mas o Menu aparece no painel Estrutura de Tópicos do Documento:

Editando um menu em tempo de design

Até quatro itens de menu podem ser adicionados ao controle de menu. Eles podem ser configurados no painel Propriedades . Os seguintes atributos podem ser definidos:

  • Título, e
  • Imagem personalizada ou
  • Uma imagem do sistema: Aceitar, Adicionar, Bloquear, Recusar, Informações, Talvez, Mais, Mudo, Pausar, Reproduzir, Reproduzir, Retomar, Compartilhar, Embaralhar, Alto-falante, Lixo.

Crie um Action selecionando a seção Eventos do painel Propriedades e digitando o nome do método de ação. Um método parcial será criado no código, que pode ser implementado na classe do controlador de interface, assim:

partial void MenuItemTapped ()
{
    Console.WriteLine ("A menu item was tapped.");
}

Imagens personalizadas

Semelhante às imagens de guias no iOS, as imagens de item de menu exigem um padrão opaco com um canal alfa que permite que o plano de fundo seja exibido.

Você deve adicionar as imagens usadas para o menu ao projeto do aplicativo de observação (não ao projeto de extensão do aplicativo de observação) para obter o melhor desempenho.

Alterando os itens de menu

Adicionando em tempo de execução

Você não pode fazer com que um Menu seja adicionado a um controlador de interface em tempo de execução, embora a coleção de MenuItems possa ser alterada programaticamente. Use o AddMenuItem método conforme mostrado:

AddMenuItem (WKMenuItemIcon.Accept, "Yes", new ObjCRuntime.Selector ("tapped"));

A API do Xamarin.iOS Watch Kit atualmente requer um selector para o método, que deve ser declarado AdMenuItem assim:

[Export("tapped")]
void MenuItemTapped ()
{
    Console.WriteLine ("The dynamically added 'Yes' menu item was tapped.");
}

Removendo em tempo de execução

O ClearAllMenuItems método pode ser chamado para remover todos os itens de menu adicionados programaticamente.

Os itens de menu configurados no storyboard não podem ser limpos.