La Saisie Semi-Automatique UITextField
Je veux de l'auto de remplir un champ de texte à partir d'une valeur personnalisée
Avoir fait des recherches sur Google et voici DONC UITextField de saisie semi-automatique - SDK de l'iPhone
J'ai essayé ceci:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([string isEqualToString:@"Fac"]) {
_clientField.text = @"Factory";
}
return YES;
}
Problème est que je n'ai pas de valeur prédite entré Factory
, juste la valeur typée Fac
MODIFIER
Essayé ce basées sur les réponses...
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([string isEqualToString:@"Fac"]) {
_clientField.text = [_clientField.text stringByReplacingCharactersInRange:range
withString:@"Factory"];
}
return NO;
}
Toujours le même
OriginalL'auteur JSA986 | 2013-01-17
Vous devez vous connecter pour publier un commentaire.
J'ai vérifié votre exemple de code et le champ de texte du délégué n'est pas définie.
Vous pouvez le mettre dans votre vue-contrôleur à l'aide de
En outre, vous devez utiliser une méthode légèrement différente pour obtenir le texte sur lequel les utilisateurs voit. Quelque chose comme ceci:
Notez que vous voulez probablement pour affiner un peu, car il par exemple, aussi auto-complété lorsque l'utilisateur supprime le texte. Mais cela devrait vous mettre sur la bonne voie.
OriginalL'auteur Alfonso
Sonne comme HTAutocompleteTextField va faire le travail:
https://github.com/hoteltonight/HTAutocompleteTextField
En gros, vous avez juste besoin de donner un tableau de valeurs comme la saisie semi-automatique de la source de données, et il fera des suggestions dans le champ de texte que l'utilisateur tape.
OriginalL'auteur jonsibley
Vous devriez avoir essayé de
NSLog
string
elle retourne toujours le dernier caractère de la les entrées de l'utilisateur (sauf si vous copiez/collez une chaîne de caractères: dans ce cas, votre code fonctionne).En fait, faire ce que vous essayez de réaliser n'est pas aussi simple qu'il paraît être.
Voici ce que j'ai trouvé:
Si vous ne générez pas les nextText vous-même puis de l'auto-complétion sera retardé. Si vous ne vérifiez la valeur du champ de texte.texte par exemple, et que vous tapez "Fac" l'achèvement lieu lors de la prochaine entrée de caractères.
Lorsque vous le champ de saisie semi-automatique, vous devrez retourner PAS, non plus, de sorte que le
string
n'est pas ajouté à la fin du champ de texte (F -> Fa -> Factoryc, vous ne voulez pas que). Donc, vous dites que textField ne devrait pas changer de personnage dans la gamme... Et que VOUS modifiez la zone de texte valeur vous-même.Espère que cela va vous aider à comprendre ce qui se passe dans cette
UITextFieldDelegate
méthode.Juste l'ajout de la chaîne n'est pas correcte, parce que l'utilisateur peut insérer le char à un endroit différent. Vous avez besoin de remplacer l'intervalle donné dans la chaîne de caractères à la place.
Vous êtes de droite. Je ne pense pas que ça.
Il ne traite pas lors de l'effacement par la touche retour arrière. Il est impossible de supprimer une Usine, de l'textfield
Vous avez raison @Tom. Pour faire les choses correctement, vous devriez certainement utiliser cette méthode (developer.apple.com/library/mac/documentation/Cocoa/Reference/...) au lieu de simplement en ajoutant de la chaîne. Et vous devriez également vérifier pour une chaîne vide pour gérer la suppression correctement. Vous avez aussi besoin de comprendre la façon dont la gamme se comporte dans les différents cas d'utilisation telles que l'ajout, la suppression, de collage, de l'insertion, de la sélection et de remplacement.
OriginalL'auteur florian
Vous pouvez également jeter un oeil à ce contrôle (NHAutoCompleteTextField). Dans l'exemple de code source dans le lien donné, vous verrez la liste de recherche de filtres que l'utilisateur tape.
NHAutoCompleteTextField
est facile à intégrer:et souple à personnaliser selon votre besoin. par exemple, créer des cellules comme par dont vous avez besoin ici:
Réglable pour la direction donnée de la liste déroulante.
Ce contrôle offre également quelques bonnes fonctions d'extension qui permettra de traiter les autres de l'Isu.
OriginalL'auteur NeverHopeless