【发布时间】:2020-01-15 02:32:48
【问题描述】:
所以我试图检测用户的键盘是设置为日文还是罗马字版本。当用户按如下方式更改键盘时,我可以阅读:
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"。有没有更好的方法来检测设置了什么键盘,例如每个键盘的唯一标识符?
【问题讨论】:
-
为什么?您的应用程序应该只关心它获得的输入,而不是该输入是如何生成的。请记住,键盘可以有多种实现,甚至是硬件键盘。并不是每个可以与您的程序一起使用的输入法都需要将自己标记为日语。在我看来,你正在尝试做的事情会导致一个让用户感到困惑的脆弱程序。
-
这是一个教人们如何写日语的应用程序,因为它不像英语那么简单。
标签: swift