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