因此,我试图检测用户的键盘设置为日语还是罗马字版本。当用户如下更改键盘时,我可以阅读:
NotificationCenter.default.addObserver(forName: UITextInputMode.currentInputModeDidChangeNotification, object: nil, queue: .main){ notification in
if String(textField.textInputMode?.primaryLanguage ?? "") == "ja-JP"{
self.hasCorrectKeyboard = true
}else{
self.hasCorrectKeyboard = false
}
}
但是,这两个键盘都将返回"ja-JP"
。是否有更好的方法来检测设置了哪些键盘,例如每个键盘的唯一标识符?
答案 0 :(得分:1)
不确定这是否可以解决,因为我不熟悉日语,但是根据文档,有一种名为Japanese-Romanji
和Japanese-Kana
https://developer.apple.com/documentation/uikit/uitextinputmode
在您检查语言为String(textField.textInputMode?.primaryLanguage ?? "") == "ja-JP"
之后,再进行检查(textField.textInputMode?.activeInputModes),或者您可以尝试退出.activeInputModes
来检查是否存在与Romanji
不同的变量和Kana
。