J'ai vu plusieurs approches à ce sujet, mais je n'arrive pas à le faire fonctionner. J'essaie de restreindre un champ de texte pour autoriser seulement les caractères alpha qui y sont saisis. C'est à dire. ABCDEFabcdef (mais tous).Limitation de la saisie de texte aux seuls caractères alpha
Voici ma méthode existante:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// Check for the back space/delete
if (string.length <=0) {
if ([self.wordArray lastObject]) {
[self.wordArray removeObjectsInRange:range];
[self.tileCollectionView reloadData];
return YES;
}
}
// Check to make sure the word is not above 16 characters, that should be enough right?
if (textField.text.length >= 16) {
NSLog(@"WOOO SLOW DOWN THE TEXT IS ABOVE 16");
return NO;
} else {
[self.wordArray addObject:string];
[self.tileCollectionView reloadData];
return YES;
}
}
À l'heure actuelle je vérifie un espace arrière et enlever la dernière entrée d'un tableau. Aussi, si la lettre est acceptée, j'ajoute la lettre comme un objet à un tableau, c'est-à-dire pour quelque chose d'autre. Mais la logique de la vérification ALPHA devrait aussi en tenir compte, seulement si la lettre est "légale" si elle s'ajoute au tableau et recharge la vue de la collection.
Quel est exactement le problème? Vous avez trouvé le bon délégué à utiliser. –