3

How can I change language in TextField:

class langField: UITextField {
    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
    }
}

Then:

let textFiled = langField()
textField.languageCode = "en"

And when user taps on your TextField language will become English

How to do the same for the search bar?

I do this:

extension UISearchBar {
    
    func textField() -> UITextField? {
        
        for view in subviews {
            
            for subview in view.subviews {
                
                if let textField = subview as? UITextField {
                    return textField
                }
            }
        }
        return nil
    }
}

But when I call textField there is no .languageCode method

Michael Sivolobov
  • 12,388
  • 3
  • 43
  • 64
Dima
  • 61
  • 1
  • 4
  • 1
    Same with this : https://stackoverflow.com/questions/12595970/iphone-change-keyboard-language-programmatically – Emre Jan 21 '19 at 11:53

0 Answers0