首页 > 解决方案 > iOS:如何检测键盘更改事件

问题描述

Xcode 9.2,iOS 10.0+,swift4。

我正在开发一个用户输入英文字符UITextField并将其转换为日文字符的项目。它工作完美。现在,我想允许用户直接从日文键盘输入日文字符。在这种情况下,我想知道键盘已从默认更改为另一种类型/语言。

那么,有什么功能或通知可以帮助我吗?

标签: iosswiftuikeyboard

解决方案


您可以使用UITextInputCurrentInputModeDidChange通知来检测当前键盘语言何时更改。

NotificationCenter.default.addObserver(self, selector: #selector(inputModeDidChange), name: .UITextInputCurrentInputModeDidChange, object: nil)

@objc func inputModeDidChange(_ notification: Notification) {
    if let inputMode = notification.object as? UITextInputMode {
        if let lang = inputMode.primaryLanguage {
            // do something
        }
    }
}

推荐阅读