Я хотел бы перевести клавиатуру моего пользователя с верхнего регистра на нижний регистр, чтобы заставить печатать строчными буквами. Как я могу это сделать?
Программно переключить клавиатуру с верхнего на нижний регистр
Ответы (4)
Вместо того, чтобы пытаться перевести клавиатуру в нижний регистр, просто переводите символы в нижний регистр после того, как пользователь их введет.
Вы не сказали, используете ли вы UITextField
или UITextView
. Предположим, вы используете файл UITextField
.
Объявите свой контроллер представления, чтобы принять протокол UITextFieldDelegate
, и установите делегата текстового поля на контроллер представления.
В контроллере представления реализуем этот метод:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
string = [string lowercaseString];
textField.text = [textField.text stringByReplacingCharactersInRange:range
withString:string];
return NO;
}
Если вы используете UITextView
, примите протокол UITextViewDelegate
и реализуйте метод textView:shouldChangeTextInRange:replacementText:
.
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
Что вы можете сделать, так это сделать строчную строку текстового поля после закрытия клавиатуры. Например,
[sender resignFirstResponder];
textField.text = textField.text.lowercaseString;
Это делает текст строчными, когда они закрывают клавиатуру, что делает то, что вы хотите.
textField.autocapitalizationType = .none
для быстрого
capitalizationType
соответствующим образом. Выбирай. - person CodaFi   schedule 12.03.2013textView shouldChangeTextInRange
и использую свои пользовательские методы для обновления textView, а затемreturn NO;
, код никогда не вызывается для отключения клавиши прописных букв после нажатия первой клавиши (например, использование заглавной буквы в первой букве предложения). Поэтому мне нужно сделать свой пользовательский метод, переопределить iOS, добавив текст, который набрал пользователь, а затем вернуть все остальные методы. - person Albert Renshaw   schedule 12.03.2013