IOS 12, Xcode 10.1. J'ai une vue qui a un UITextField
. La connexion du délégué est reliée au contrôleur de vue dans le Storyboard. J'ai fait ça des millions de fois avant.
Je veux envoyer le premier répondeur au champ suivant lorsque la touche Return est appuyée sur le clavier, la façon correcte de procéder est donc la suivante :
extension SignInViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
switch textField {
case loginEmailField:
loginPasswordField.becomeFirstResponder()
case loginPasswordField:
loginPasswordField.resignFirstResponder()
signInTapped(sender: UIButton())
default: break
}
return true
}
}
Avec un clavier matériel attaché, soit avec mon iPad Pro avec Keyboard Case, soit sur mon Mac avec le Simulateur, la méthode delegate ne se déclenche pas. Faites apparaître le clavier à l'écran, et cela fonctionne parfaitement.
J'ai mis en place des choses similaires auparavant, et je me suis creusé la tête pour voir les différences entre elles, en vain. Quelles causes potentielles puis-je envisager pour résoudre ce problème et faire fonctionner les touches Retour des claviers matériels ?