【发布时间】:2021-05-19 06:03:28
【问题描述】:
我希望我的 UITextField 只接受 一个字符,它应该是一个 片假名字符。用户使用Japanese-Romaji注音键盘打字时怎么办?
General->Keyboard->Keyboards-> Japanese Romaji
以下代码不起作用,因为我将英文字符发送到 string 参数。看来我必须处理 textFiled 的markedTextRange 属性,但不确定如何处理。知道如何修改以下方法以满足我的要求吗?
当语言是表意而键盘是拼音时,需要多级文本输入。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string.rangeOfCharacter(from: .init(charactersIn: "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン")) != nil || string == ""{
return true
} else {
return false
}
}
【问题讨论】:
-
我注意到您的列表中没有包含所有片假名,例如带有゛和゜的片假名,以及ヤ、yu、ヨ、ツ的小版本(即ャ、ュ、ョ,ッ) 这是故意的吗?
-
我从我的客户那里得到了上面的字符列表,我们将它们用于我们应用程序中非常具体的绘图功能。所以我希望我们不需要考虑小版本。感谢您注意到????♂️
标签: ios swift uitextfield