Le formatage d'un UITextField pour la carte de crédit d'une entrée comme (xxxx xxxx xxxx xxxx)

Je veux formater un UITextField pour la saisie d'un numéro de carte de crédit telle qu'elle permet uniquement de chiffres pour être inscrit et insère automatiquement des espaces de sorte que le nombre est formaté comme suit:

XXXX XXXX XXXX XXXX

Comment puis-je faire cela?

  • Si vous pouvez utiliser des bibliothèques open source, je voudrais vous recommandons vivement de prendre un coup d'oeil à PaymentKit (github.com/stripe/PaymentKit). Ils ont un module de formatage vous pouvez utiliser, et cela fonctionne pour tous les types de cartes (et a un programme de validation ainsi de luhn vérifier et autres joyeusetés).
  • intrigante, et peut-être - pour autant que je sache - une meilleure approche de ma réponse, mais je n'ai pas le temps ni l'envie de le regarder (surtout que je n'ai pas de Mac, et je n'ai pas fait de développement iOS en plus d'un an). Si vous avez de l'expérience avec la bibliothèque, puis la rédaction d'une réponse montrant un exemple simple d'utilisation, il serait probablement ont beaucoup plus de valeur pour les futurs lecteurs que juste un commentaire.
  • Cette réponse peut vous aider si vous êtes à la recherche pour une approche dynamique. stackoverflow.com/a/38560759/3947151
  • Cette question continue d'attirer des réponses de gens qui comptent ils aident en fournissant un plus court, plus simple de répondre que mon (accepté) réponse. Ces réponses sont en effet plus court et plus simple - et comme une conséquence, pas un seul d'entre eux travaille! (Et oui, j'ai personnellement testé tous un seul.) C'est un trompeusement difficile problème, les gens! Si vous allez essayer de fournir une meilleure réponse, à moins de lire la section "Explication" de ma réponse, et beaucoup, beaucoup de commentaires que j'ai laissé en expliquant les moyens des autres implémentations sont brisés, et vérifiez que vous n'êtes pas à défaut de la même manière.
InformationsquelleAutor Can Aksoy | 2012-08-23