问题描述
我希望检测用户何时点击键盘的更改输入语言按钮。我正在使用通知中心进行检测。
我的问题存在于通知观察者调用的方法中。被调用的方法不会在第一个打印语句之后执行。通知对象绑定到'inputMode' let 常量是否有问题?
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
NotificationCenter.default.addobserver(self,selector: #selector(inputModeDidChange(_:)),name: UITextInputMode.currentInputModeDidChangeNotification,object: nil)
loadLanguages()
}
override func viewWilldisappear(_ animated: Bool) {
super.viewWilldisappear(animated)
NotificationCenter.default.removeObserver(UITextInputMode.currentInputModeDidChangeNotification)
}
@objc func inputModeDidChange(_ notification: Notification) {
print("inputModeDidChange notification in languagesView fired!")
if let inputMode = notification.object as? UITextInputMode {
print("inside inputMode in inputModeDidChange in languagesView")
if let language = inputMode.primaryLanguage {
print("inside language in inputModeDidChange in languagesView")
keyboardLanguage = language
UserDefaults.standard.set(keyboardLanguage,forKey: "keyboard")
print("keyboardLanguage in inputModeDidChange in languagesView is: \(keyboardLanguage ?? "")")
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)