2 votes

Comment cacher le clavier dans TableViewController lorsqu'on appuie sur une autre cellule?

J'ai TableViewController avec des UITextFields en tant que cellules et des cellules sans TextField.
Je voudrais masquer le clavier lorsque j'ai tapé sur une autre cellule sans TextField

2voto

vdmzz Points 261

Dans votre implémentation de UITableViewDelegate :

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    view.endEditing(true)
}

1voto

Anupam Mishra Points 1344

Cela pourrait être utile :

extension VotreViewController: UITableViewDelegate {

        func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            self.view.endEditing(true)
        }
    }

1voto

A.Munzer Points 432

Vous avez deux façons de le gérer, tout d'abord vous pouvez masquer le clavier lorsque l'utilisateur a tapé sur des cellules sans champ de texte, par le biais du délégué de la table view, mais vous devez ignorer les lignes qui ont un champ de texte

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    view.endEditing(true)
}

Ou vous pouvez ajouter un UITapGestureRecognizer aux cellules qui n'ont pas de champ de texte

func hideKeyboardWhenTappedAround() {
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UITableViewCell.dismissKeyboard))

    view.addGestureRecognizer(tap)
}

@objc func dismissKeyboard() {
    view.endEditing(true)
}

1voto

Essayez d'utiliser "IQKeyboardManagerSwift", il dispose de tous les contrôles de clavier dont vous aurez besoin à l'avenir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X