Подтвердить что ты не робот

UITextField не будет автоматически использовать весь проект

По какой-то причине ни один из моих UITextFields не будет автокапитализирован. Я установил свойство в InterfaceBuilder, а также программно, как показано ниже.

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

В любом случае я мог бы установить некоторый флаг, который отключает автокапитализацию во всем приложении, не осознавая этого?

Спасибо

4b9b3361

Ответ 1

Вы проверили свои настройки iPhone → Общие → Клавиатура → Авто-капитализация?

Ответ 2

Я обнаружил, что если вы отключите автокоррекцию, тогда автоматическая капитализация также не будет работать. Мне кажется, что они должны действовать независимо. В поле имени вы хотели бы использовать каждое слово, но не заменять имя автоматически, как предсказывает словарь.

Ответ 3

Я не мог заставить его работать независимо от настроек. Поэтому я просто помещаю это в делегат текстового поля:

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

}