I have a very simple login page (login + password).
My users are french, so their keyboard are French (azerty).
Since iOS 12, when they click on the password
Swift 3:
Create base class for UITextField with languageCode and textInputMode.
class BaseTextField: UITextField {
// ru, en, ....
var languageCode: String? {
didSet{
if self.isFirstResponder{
self.resignFirstResponder();
self.becomeFirstResponder();
}
}
}
override var textInputMode: UITextInputMode? {
if let language_code = self.languageCode {
for keyboard in UITextInputMode.activeInputModes {
if let language = keyboard.primaryLanguage {
let locale = Locale.init(identifier: language);
if locale.languageCode == language_code {
return keyboard;
}
}
}
}
return super.textInputMode;
}}
Usage:
Set your value (ru, en, ...) to languageCode. It will force change the locale in the keyboard.
private func textConfigure(textField: UITextField) {
textField.keyboardType = .default
textField.autocapitalizationType = .words
textField.languageCode = "ru"
}
Hope help you.