如何在Swift中显示日文字符?

时间:2018-08-17 22:45:12

标签: ios swift character textfield cjk

我尝试开发一个ios应用,我想对日语字符做一些介绍。 我的应用程序将向用户显示拉丁字母。但是此用户每次点击任何拉丁字符,我都会在文本字段中设置文本日语字符。这该怎么做 ?从现在开始非常感谢。

1 个答案:

答案 0 :(得分:1)

您需要UITextFieldDelegate方法

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool

它会在用户每次添加或删除一个或多个字母时触发。要使用它,必须将TextField的委托设置为ViewController。

例如,您可以编写(假设您有一个名为asJapanese的函数,它将拉丁字母转换为日语):

extension ViewController: UITextFieldDelegate {
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        if string.count > 0 {
            if let text = textField.text, let textRange = Range(range, in: text) {
               let japaneseString = asJapanese(string)
               let updatedText = text.replacingCharacters(in: textRange, with: japaneseString)

               textField.text = updatedText
               return false
            }
        }
        return true
    }
}