IPhone: проблема отключения Auto-Cap/autocorrect на UITextField - программирование
Подтвердить что ты не робот

IPhone: проблема отключения Auto-Cap/autocorrect на UITextField

По какой-то причине, несмотря на то, что я отключил автозаполнение и автоматически исправил свой UITextField, он по-прежнему заглаживает первую букву моего ввода.

Вот код:

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;
    }

}

Смотрите снимок экрана: alt text http://grab.by/39WE

4b9b3361

Ответ 1

Вы устанавливаете autocorrectionType в FALSE, как если бы это был BOOL, но на самом деле он имеет тип UITextAutocorrectionType. Поэтому FALSE интерпретируется как UITextAutocorrectionTypeDefault, что означает, что автокоррекция, вероятно, включена.

Я уверен, что он нашел имя "Фил" в вашей адресной книге и автокорректирует капитализацию, чтобы она соответствовала.

Ответ 2

Цель - 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
}

Ответ 3

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

Ответ 4

Swift 2:

textField.autocorrectionType = .No
textField.autocapitalizationType = .None

Ответ 5

Если вы хотите отключить автозапись/автозамену в UITextField для всего проекта,

затем создайте класс, который будет наследовать класс UITextField и метод init, установите для autoCorrectionType значение "no".

Class AppTextField: UITextField {

     override init(frame: CGRect) {
         super.init(frame: frame)

         //setting the autocorrection to no
          self.autocorrectionType = .no
      }
}

Затем в раскадровке установите класс Cusotom для текстового поля в AppTextField.

enter image description here