2010-03-19 2 views
46

Pour une raison quelconque, même si je désactive la fonction Auto-Cap et Auto-Correction de mon UITextField, elle continue de mettre la première lettre de mon entrée en majuscule.iPhone: Problème lors de la désactivation de la fonction Auto-Cap/autocorrect sur un UITextField

Voici le code:

UITextField* textField = [[[UITextField alloc] initWithFrame:CGRectMake(90.0, 10.0, 213.0, 25.0)] autorelease]; 
[textField setClearButtonMode:UITextFieldViewModeWhileEditing]; 
textField.returnKeyType = UIReturnKeyGo; 
textField.autocorrectionType = FALSE; 
textField.autocapitalizationType = UITextAutocapitalizationTypeNone; 
textField.delegate = self; 
if (inputFieldType == Email) { 
    label.text = @"Email:"; 
    textField.keyboardType = UIKeyboardTypeEmailAddress; 
    emailTextField = textField; 
    textField.placeholder = @"Email Address"; 
} else { // password 
    textField.secureTextEntry = TRUE; 
    label.text = @"Password:"; 
    if (inputFieldType == Password){ 
     textField.placeholder = @"Password"; 
     passwordTextField = textField; 
    } 
    if (inputFieldType == ConfirmPassword){ 
     textField.placeholder = @"Confirm Password"; 
     confirmPasswordTextField = textField; 
    } 

} 

Voir capture d'écran: alt text http://grab.by/39WE

Répondre

60

Vous définissez autocorrectionType-FALSE comme si elle était un BOOL, mais il a en fait taper UITextAutocorrectionType. Donc, FALSE est interprété comme UITextAutocorrectionTypeDefault, ce qui signifie que l'autocorrection est probablement activée. Je parie qu'il a trouvé le nom "Phil" dans votre carnet d'adresses et qu'il corrige automatiquement la capitalisation.

+1

Ha! J'ai eu le problème inverse. J'ai eu la correction automatique désactivée correctement - mais mettait la capitalisation automatique à FAUX - d'oh! – philsquared

30

Objectif - C

-(void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    textField.autocorrectionType = FALSE; // or use UITextAutocorrectionTypeNo 
    textField.autocapitalizationType = UITextAutocapitalizationTypeNone; 

} 

Swift

func textFieldDidBeginEditing(textfield : UITextField) 
{ 
    textField.autocorrectionType = .No 
    textField.autocapitalizationType = .None 
    textField.spellCheckingType = .No 
} 

swift3

func textFieldDidBeginEditing(_ textField : UITextField) 
{ 
    textField.autocorrectionType = .no 
    textField.autocapitalizationType = .none 
    textField.spellCheckingType = .no 
} 
+0

Bonjour Anbu, Comment pouvons-nous activer la même option (textField.autocorrectionType = FALSE; // ou utiliser UITextAutocorrectionTypeNo) pour NSTextfield (application Mac). Des pensées? – Surezz

7
yourTextFieldName.autocorrectionType = UITextAutocorrectionTypeNo; 
yourTextFieldName.autocapitalizationType = UITextAutocapitalizationTypeNone; 
2

Swift 2:

textField.autocorrectionType = .No 
textField.autocapitalizationType = .None 
+1

Veuillez ajouter une description de la solution que vous proposez. –

Questions connexes