UITextField et NumberPad

Eddy58Eddy58 Membre
12:35 modifié dans API UIKit #1
Voila, pour un UITextField a contenu numérique uniquement, je règle un Keyboard Type de type NumberPad, mais le problème est qu'une fois le nombre rentré, impossible de sortir du Keyboard, car il n'y a pas de bouton "Retour".
Quelqu'un a une idée là  dessus ?

Réponses

  • Philippe49Philippe49 Membre
    12:35 modifié #2
    On utilise les messages envoyés au delegate du text field selon le protocole UITextFieldDelegate. On désigne un view controller (par exemple) comme delegate du text field, et on implémente la méthode :
    - (void)textFieldShouldReturn:(UITextField *)aTextField
    Le text field envoie ce message lorsque l'utilisateur tape sur le bouton Return du clavier.

    La méthode textFieldDidEndEditing:  ne convient pas ici, car ce message est envoyé après que le text field résilie son statut de First Responder (resignFirstResponder)
  • Eddy58Eddy58 Membre
    12:35 modifié #3
    Ok, oui il me semble que je n'ai pas spécifié de delegate, je verrais ça ce soir.
    Mais curieusement, avec le Keyboard classique, je n'ai rien spécifié de spécial, et pourtant le bouton "Retour" est disponible, et la méthode textFieldShouldReturn correctement appelée. C'est en passant en Type NumberPad que ça ne fonctionne plus.
  • Eddy58Eddy58 Membre
    12:35 modifié #4
    Mon delegate était bien réglé. En faites tous les types de Keyboards sont équipés du bouton "Retour", mis à  part les Keyboards Number Pad et Phone Pad, qui ne me permettent pas de sortir du mode édition, mis à  part si je bricole un resignFirstReponder en touchant la view principale, mais je ne trouve pas ça intuitif.

    Tant pis, pour le moment je fonctionne avec le Keyboard Numbers & Punctuation, et en rajoutant un filtrage supplémentaire à  la récupération de la valeur.

    D'où vient ce problème ? Les numbers pad seraient-ils bugués sur iPod, où fonctionnent-ils dans des conditions particulières ?
  • Philippe49Philippe49 Membre
    12:35 modifié #5
    J'ai essayé avec le code de Hello-world, le NumberPad fonctionne

    Commment interpréter la doc à  ce sujet :
    Use a numeric keypad designed for PIN (personal identification number) entry. This type features the numbers 0 through 9 prominently.

    Une indication sur le type d'utilisation qu'Apple veut voir associer à  ce type de clavier ?
  • Eddy58Eddy58 Membre
    octobre 2008 modifié #6
    Je viens aussi de tester sur HelloWorld, et bien pour ma part, même résultat, toujours pas de bouton "Retour". ???

    En ce qui concerne l'utilisation, normalement tout textfield utilisant uniquement des entiers numériques devrait pouvoir utiliser le Number Pad. Il faudrait regarder les mobiles-HIG voir s'ils en parlent.
  • Philippe49Philippe49 Membre
    octobre 2008 modifié #7
    Mettre soi-même un bouton dans la property rightView ?

    Mais si le bouton Retour n'y est pas, ne serait-ce pas que pour l'utilisation prévue de ce clavier, le bouton Retour ne doit pas y être : par exemple le PIN attendu a suffisamment de digit pour être enregistré ?
  • 12:35 modifié #8
    D'accord avec Philippe, ça me semble être la solution
  • Eddy58Eddy58 Membre
    12:35 modifié #9
    Rajouter un bouton dans l'interface pour fermer le Keyboard, idée intéressante, mais je ne trouve pas ça propre, en plus mon textfield étant dans une toolbar, qui est suffisamment chargée, la place est très limitée et esthétiquement ça serait pas terrible. Dans le même genre j'avais aussi réglé le problème avec un simple tap sur l'écran qui cachait le clavier, mais je ne trouve pas cela intuitif. Non, je vais rester avec le Numerics&Punctuation Keyboard, un simple filtrage à  la récupération de la valeur règle le problème.

    Je trouve vraiment incohérent de ne pas mettre de bouton Retour dans ce Keyboard, et de le limiter à  une certaine utilisation.
Connectez-vous ou Inscrivez-vous pour répondre.