У меня есть несколько клавиатур в моем 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
Заранее спасибо за помощь.