12
votes

Uitextfield ne profitera pas automatiquement tout au long du projet

Pour une raison quelconque, aucun de mes fichiers UitextTex ne sera autocapitalisant. J'ai défini la propriété dans InterfaceBuilder ainsi que de manière programmatique, comme indiqué ci-dessous.

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"search_cell"];
UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(12, 10, 320, 32)];
tf.autocapitalizationType = UITextAutocapitalizationTypeWords;
tf.returnKeyType = UIReturnKeySearch;
tf.font = [UIFont boldSystemFontOfSize:20.0];
tf.delegate = self;
[cell addSubview:tf];
[tf becomeFirstResponder];


0 commentaires

3 Réponses :


26
votes

Avez-vous vérifié les paramètres de votre iPhone -> Général -> Clavier -> Capitalisation automatique?


1 commentaires

Une autre chose à regarder est que, dans Simulator, les paramètres de capitalisation automobile n'affectent que le clavier Simulator. Donc, cela ne fonctionnera pas si vous tapez avec le vrai clavier. :)



3
votes

J'ai trouvé que si vous désactivez l'autocorrection, la capitalisation automatique ne fonctionne pas non plus. Me semble qu'ils devraient fonctionner de manière indépendante. Dans un nom de nom, on voudrait capitaliser chaque mot mais ne remplacerait pas automatiquement un nom avec le dictionnaire prédit.


0 commentaires

0
votes

Je ne pouvais pas le faire fonctionner, peu importe les paramètres. Donc, je viens de mettre cela dans le délégué de la Textefield:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    // Handle the backspace.
    if ([string isEqualToString:@""]) return YES;

    // Otherwise convert to uppercase and change the textfield manually.
    textField.text = [[textField.text stringByAppendingString:string] uppercaseString];
    return NO;
}


0 commentaires