我已经实现了与文本字段关联的自定义键盘,因此当用户按下删除按钮时,我从字符串中删除最后一个字符,并手动更新当前文本字段文本.
NSRange range = NSMakeRange(currentTextFieldString.length-1, 1);
[currentTextFieldString replaceCharactersInRange:range withString:@""];
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.
现在,问题是,用户可以选择输入一些特殊的unicode符号,这些不是1个字节,它们也可以是2个字节,现在按下删除按钮,我必须删除整个符号,但如果我按照上述方法,用户必须按两次删除按钮.
在这里,如果我这样做:
NSRange range = NSMakeRange(currentTextFieldString.length-2, 2);
[currentTextFieldString replaceCharactersInRange:range withString:@""];
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是,正常的字符,只有1个字节,一次被删除两次.
如何处理这种情况?
提前致谢.
编辑:
奇怪的是,如果我切换到iPhone键盘,它会适当地处理两种情况.必须有一些方法可以做到这一点,有一些我缺少的东西,但我无法弄清楚是什么.