Как распечатать язык при изменении клавиатуры на iOS? - PullRequest
0 голосов
/ 16 марта 2020

У меня есть несколько клавиатур в моем Xcode iOS Simulator. Я использую Swift (мне нужен код для работы в Swift), и когда они меняют тип ввода с клавиатуры в моем приложении (например, с Engli sh на Spani sh), я хочу знать, на каком языке это было изменено на.

У меня есть функция в моем ViewDidLoad:

NotificationCenter.default.addObserver(self,
                                               selector: #selector(changeInputMode(_:)),
                                               name: UITextInputMode.currentInputModeDidChangeNotification, object: nil)

и эта функция поддерживает ее.

@objc func changeInputMode(_ notification: Notification)
        {
            let inputMethod = UITextInputMode.activeInputModes.description
            print("keyboard changed to \(inputMethod.description)")
        }

Описание inputMethod выводит это для меня:

[<UIKeyboardInputMode: 0x6000027a28a0>, <UIKeyboardInputMode: 0x6000027ab2f0>, <UIKeyboardInputMode: 0x6000027bc9b0>, <UIKeyboardInputMode: 0x6000027bca50>, <UIKeyboardInputMode: 0x6000027b8ff0>, <UIKeyboardInputMode: 0x6000027b9090>]

Я хотел бы получить язык в более простых терминах, таких как "engli sh" или "en" или что-то типа того. Как этого достичь?

Я также попробовал следующее:

let language = UITextInputMode.currentInputMode()?.primaryLanguage
            print(language)

, но получил ошибку:

'currentInputMode()' is unavailable in iOS: APIs deprecated as of iOS 7 and earlier are unavailable in Swift

Заранее спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...