seul caractère - pas de numéros spéciaux / de clavier - iPhone
-
16-09-2019 - |
Question
UITextField
normale affiche un UIKeyboard
qui comprend alpha + + Numberic spéciaux
Mais j'ai besoin alpha seulement ...
J'ai besoin parce que si l'utilisateur entre quelque chose comme - A'bad
il a un caractère '-. Qui affecte ma requête
Comment nous pouvons définir uniquement alphabetic
UIKeyboard
à l'utilisateur?
La solution
Ce message SO répond à votre question: UIkeyboard tapez
Autres conseils
Je pense. Je suis la réponse.
Dans votre fichier UIViewController
.h ajouter delegate<UITextfieldDelegate>
Maintenant, ajoutez le code suivant à .m fichier
- (BOOL) textField:(UITextField*)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString*)textEntered {
for (int i = 0; i < [textEntered length]; i++) {
unichar c = [textEntered characterAtIndex:i];
if (![myCharSet characterIsMember:c]) {
return NO;
}
}
return YES;
}
Vous devez utiliser comme je le fais ci-dessous;
- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters
{
NSMutableCharacterSet *filteredChars = [NSMutableCharacterSet letterCharacterSet];
[filteredChars formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
NSCharacterSet *blockedCharSet = [filteredChars invertedSet];
if (([string rangeOfCharacterFromSet:blockedCharSet].location == NSNotFound)) {
return YES;
}
return NO;
}
Au lieu de désactiver ou non permettant à l'utilisateur d'ajouter « (apostorpe) utiliser le code ci-dessous, il vous permettra d'insérer » (apostorpe)
[textEntered stringByReplacingOccurrencesOfString:@" ' " withString:@" ' '"];