Usar o BecomeFirstResponder faz com que o botão Cancelar não funcione
-
21-12-2019 - |
Pergunta
eu tenho um UISearchDisplayController
(searchDisplayCtr) e um UISearchBar
(Barra de pesquisa).Estou tentando focar a barra de pesquisa e abrir o teclado quando clico no ícone de pesquisa na rolagem do alfabeto à direita.Se eu incluir,
[self.searchDisplayCtr setActive:YES];
[self.searchDisplayCtr.searchBar becomeFirstResponder];
Ele abre o teclado e seleciona a barra de pesquisa, mas o botão cancelar não funciona de forma consistente.Eu tentei renunciar ao socorrista, definindo ativo como NÃO e ambos em searchDisplayControllerWillEndSearch
, mas não ajuda.O botão cancelar funcionará somente se nenhuma outra letra da rolagem do alfabeto tiver sido clicada ainda.
Solução
Aparentemente, é necessário rolar até o topo da tabela antes de definir o socorrista.O código acabou sendo
[tableView setContentOffset:CGPointMake(0, 0) animated:NO];
[self.searchBar becomeFirstResponder];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow