Action quand le textField est vide

Bonjour,

Je recherche comment faire une action quand un TextField devient vide.
C’est à dire quand l’utilisateur supprime tout les caractères qu’il y a dedans.

J’ai réussi à faire mon action avec un bouton mais, j’aimerais si c’est possible pouvoir le faire automatiquement sans avoir besoin de cliquer quelque pars.

Salut Anthony,

Pour sa utilise la fonction du Uitextfielddelegate qui s’appel “shouldChangeCharactersIn”. Elle et appeler a chaque changement de character, tu peu donc facilement déduire quand le textfield est vide.

Y’a pas un truc moins gourmand (enfin je me dis peut-être à tort que c’est moins gourmand) ? Genre tester si la valeur du TF est Nil. Ou encore, si sa longueur est de 0 ?

Ou bien c’est à faire que pour le passage à TF utilisé, à TF vide ?

Merci à tous, j’ai trouver une autre solution car j’ai changer d’avis je préfère que l’action se fasse à chaque tape de l’utilisateur.
Donc, j’ai mis dans le ViewDidLoad pour savoir si y est entrain d’être édité ceci :

ui_input.addTarget(self, action: #selector(ViewController.inputIsEditing), for: UIControlEvents.editingChanged)

Et elle renvoie vers ma function qui est celle-ci :

func tipEnterIsEditing () {
        if (ui_input.text?.isEmpty)! {
            ui_PercentLabel.text = "0 €"
            ui_totalLabel.text = "0 €"
        } else {
            calculatePercent()
        }
    }
1 « J'aime »

Je suis d’accord avec @Samir, le delegate paraît être la meilleure solution : elle permet de surveiller tout ce qui se passe sur le TF (début d’édition, fin d’édition, chaque changement de caractère, etc.).
Il n’y a aucune différence de performances notable entre les actions et le delegate à priori.

J’ai essayer de le faire avec le delegate mais, mon problème c’est qu’il y a un décalage entre textField et le label qui reçois l’action.
Quand par exemple de tape 1 le label reste à 0 et au moment de la deuxième frappe le 1 apparait mais pas le deuxième caractère ainsi de suite …