Comment désactiver les caractères de lettre dans UITextField?
Dans mon application, j'ai besoin de permettre à l'utilisateur d'entrer uniquement des chiffres.
Comment puis-je permettre UITextField pour recevoir uniquement les numéros de l'utilisateur?
source d'informationauteur Alexander Tkachenko
Vous devez vous connecter pour publier un commentaire.
Les personnages dans ces exemples sont autorisés, donc si vous ne voulez pas l'utilisateur d'utiliser un personnage, l'exclure de la
myCharSet
.Je préfère la solution suivante qui empêchent toute entrée à l'exception de chiffres et de retour arrière. La touche retour arrière pour une raison quelconque est représentée par une chaîne vide et ne peut pas être utilisé à moins que la chaîne vide retourne OUI. J'ai aussi un popup d'alerte lorsque l'utilisateur saisit un des caractères autres que des chiffres.
C'est peut-être le plus propre, solution la plus simple pour autoriser uniquement les nombres positifs ou négatifs. Cela permet également de revenir en arrière.
Une chose que vous pouvez faire est d'afficher les nombres de clavier et à côté de champ de texte ou un autre endroit où ajouter un bouton dynamique pour masquer le clavier.
les gars, vous pourriez flamme.. mais cela a fonctionné pour moi.. seulement des nombres (y compris les négatifs), et la touche retour arrière.
Voici ma solution l'application de l'algèbre des ensembles avec la méthode
isSupersetOfSet:
Cela ne permet pas non plus coller du texte avec des caractères non valides:Remarque: selon Apple Developer BibliothèqueIl est préférable de cache statique
NSCharacterSet
que de créer encore et encore (ici_numericCharSet
).Cependant, je préfère laisser à l'utilisateur de saisir n'importe quel caractère et de valider la valeur de la méthode
textFieldShouldEndEditing:
appelée lorsque le textField essaie de démissionner de premiers répondants.De cette manière, l'utilisateur peut coller n'importe quel texte (peut-être composé d'un mélange de lettres et de chiffres) et mettre de l'ordre dans mes objets textfield. Les utilisateurs n'aiment pas à voir limitent leurs actions.
Dans Swift
Voici un rapide exemple
N'oubliez pas d'ajouter
UITextFieldDelegate
à votreUIViewController
.Ce thread est un peu vieux, mais pour le bien de la référence, je vais laisser une solution rapide 3. Cette solution permettra de combiner
decimalDigits
et le réel décimal. Vous pouvez mettre ensemble, quelle que soit la combinaison que vous souhaitez, mais pour mon cas c'est ce que les exigences ont été.