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.
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:
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 MenuItem
s 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.