A altura de um teclado em vários dispositivos iOS é diferente. Alguém sabe como posso obter a altura do teclado de um dispositivo de forma programática?
ios
swift
uikeyboard
Lachtan
fonte
fonte
Respostas:
Em Swift:
Você pode obter a altura do teclado assinando a
UIKeyboardWillShowNotification
notificação. (Supondo que você queira saber qual será a altura antes de ser exibida).Algo assim:
Swift 2
Swift 3
Swift 4
Em seguida, você pode acessar a altura em
keyboardWillShow
funções como estas:Swift 2
Swift 3
Swift 4
fonte
UIResponder.keyboardWillShowNotification
no bit do nomeSwift 3.0 e Swift 4.1
1- Cadastre a notificação no
viewWillAppear
método:2- Método a ser chamado:
fonte
keyboardWillShow
parâmetro do tipoNotification
para torná-lo mais compatível com o Swift 3.0.viewDidLoad
não é uma boa ideia: onde você coloca aremoveObserver
chamada correspondente para que, quando este VC não estiver mais sendo mostrado, ele pare de receber notificações? É melhor colocar o registro para notificaçõesviewWillAppear
e, em seguida, colocar aremoveObserver
chamadaviewWillDisappear
Swift 4 e restrições
Para sua visualização de mesa, adicione uma restrição inferior em relação à área segura inferior. No meu caso, a restrição é chamada tableViewBottomLayoutConstraint.
fonte
Atualizar Swift 4.2
método seletor:
extensão:
Atualizar Swift 3.0
método seletor:
extensão:
Dica
UIKeyboardDidShowNotification ou UIKeyboardWillShowNotification pode ser chamado duas vezes e obter um resultado diferente. Este artigo explica por que é chamado duas vezes.
Em Swift 2.2
Swift 2.2 deprecates usando cordas para seletores e em vez disso introduz nova sintaxe:
#selector
.Algo como:
método seletor:
extensão:
fonte
Versão mais curta aqui:
fonte
Swift 4 .
Método Mais Simples
fonte
Swift 5
fonte
// Etapa 1: - Registre o NotificationCenter
// Etapa 2: - Esses métodos serão chamados automaticamente quando o teclado aparecer ou ocultar
fonte
O método por ZAFAR007 atualizado para Swift 5 no Xcode 10
fonte
Eu tive que fazer isso. isso é um pouco de hackeagem. não sugerido.
mas achei isso muito útil
, fiz extensão e estrutura
Extensão ViewController + Struct
Uso:
obter a maior restrição inferior
chame a função dentro de viewDidLoad ()
Espero esta ajuda.
- O teclado agora será fechado automaticamente quando o usuário tocar fora do campo de texto e
- empurrará toda a visualização para cima do teclado quando o teclado aparecer. -você
também pode usar despedirKeyboard () sempre que precisar
fonte
Eu uso o código abaixo,
fonte