Zone de texte pour une valeur décimale

Bonjour

J’aimerai savoir comment on met des contraintes sur une zone de texte pour n’accepter que des valeurs décimales comprises 1.0 et 100.0. J’aimerai également mettre un suffix (exemple mm)

Quel langage, quel OS, quel type de machine, quel framework graphique ?

iOS, UIKit, UITextField objective-c

Jamais fait d’objective-c, désolé !

Vas poser la question sur https://cocoacafe.fr/index.php?p=/, il est possible que quelques devs objective-c y traînent encore. Ou regarde le moteur de ce site, qui contient des milliers de sujets sur l’objective-c, amassés au fil des années.

Et sincèrement, l’Objective-C est un outil complètement obsolète. A moins d’avoir une obligation professionnelle comme faire de la maintenant sur de vieilles applications, cela ne présente aucun intérêt de s’y pencher à l’heure actuelle !

J’ai deja fait des recherches.
Pour avoir les contraintes mentionnées, il semble falloir beaucoup de code juste pour quelque chose de simple.
L’objective-c n’est pas forcement obligatoire. Je peux adapter une solution proposée en swift.
J’imaginais qu’il y a avait un moyen simple de le faire avec le storyboard

Hello,

Pour l’objective-C je ne sais pas te dire mais en swift tu peux essayer comme ca:
Sur le storyboard, sélectionne le textFiled et defini le paramètre ‹ keyboardType › sur ‹ Decimal Pad ›.

Ensuite cette fonction devrait limiter le range de valeurs que tu peux entrer:

extension viewController: UITextViewDelegate {
 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString  string: String) -> Bool {
    let newText = (textField.text! as NSString).replacingCharacters(in: range, with: string) as String
    if let num = Double(newText), num >= 0 && num <= 100 {
        return true
    } else {
        return false
    }
 }
}

Concernant le prefix quelque chose comme ca devrait fonctionner

let prefix = UILabel()
prefix.text = "mm"
prefix.sizeToFit()

textField.leftView = prefix
textField.leftViewMode = .always

Je t’informes que je n’ai rien testé donc ca méritera surement un peu d’adaptation :laughing:

1 « J'aime »

Bonjour

En effet j’ai déjà mis le keyboardType sur decimal.
Merci pour votre réponse je l’ai converti en objective-c et elle fonctionne.

1 « J'aime »