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
Ответы
Ответ 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]()