[Swift] Validation NSTextField avec clavier Décimal Pad

[Swift] et [Storyboard]


 


Soit une mini application toute simple avec une seule zone de Saisie des nombres, que dois-je utiliser pour actionner ou détecter une validation ?


 


Je souhaiterais éviter du code, si c'est possible.


 


C'est sûrement basic, mais bon je m'y remets.


 


Merci.


Réponses

  • S'il s'agit de valider le contenu de ton champs, tu dois nécessairement passer par du code et ici il existe plusieurs façons de s'y prendre.


     


    Si je ne compte pas les librairies tierces je vais te citer les 3 les plus utilisés.


     


    La première et probablement la plus courante est d'implémenter le délégué UITextFieldDelegate pour déterminer quand le texte de ton champs de texte est modifié.


    La seconde est d'utiliser les notifications NotificationCenter et t'abonner aux changements de texte de ton champs de texte.


    La troisième est d'utiliser les contrôles d'évènement de ton champs de texte. Tu peux relier ton textfield à  partir de ton storyboard vers ton code et sélectionné editTextField ou quelque chose comme ça.


  • Merci j'ai solutionné en mettant ces zones sur un grand bouton qui fait tout l'écran, simple mais satisfaisant.


     


    Pendant qu'on y est comment je fait de façon simple pour transformer ma saisie (texte) en nombre et l'inverse en tenant compte de la localisation.


     


    L'option de changer la virgule par un point et l'inverse sont faisables bien sûr, mais pourquoi ne pas faire un truc propre qui tient compte du pays, plutôt de la langue utilisée sur le device ?


  • N'ayant pas eu de réponse !! faut aussi reconnaitre que ce n'était pas le sujet (je vais en créer un ça peut servir a d'autres)



    func formatCourant(value: Float) -> String {
        let format = NumberFormatter()
        format.numberStyle = .currency
            let resultat = format.string(from: value as NSNumber)
        return resultat!
    }
    //A l'utilisation
    monLabel.text = formatCourant(value: monFloat)

    Et ça m'affiche mon résultat en € avec la virgule qui va bien et tout et tout .


     




    S'il s'agit de valider le contenu de ton champs, tu dois nécessairement passer par du code et ici il existe plusieurs façons de s'y prendre.


     




     


    Pourquoi faire simple quand on peut faire compliqué J'ai installé une action/Event EditingChanged et ça marche.


    J'avais dû tenter ça, pourquoi ça ne marchait pas ?

  • C'est un peu ce que j'expliquais déjà  dans ma première réponse 


Connectez-vous ou Inscrivez-vous pour répondre.