我已经创建了一个带有我自己的Unicode字符的自定义键盘...该应用效果很好但是当我按下后面的空间时,它有时候不会退格,有时候它会...但通常在我得到它之后用我的退格键删除前一个字符,其他字母按钮将不再输入我想要的unicode字符...
这是我的一个Unicode字符代码:
textViewString = [[NSString alloc] initWithFormat:@"%@%@", textView.text, char6String];
[textView setText:textViewString];
在这种情况下,“char6string”只是我的unicode字符之一“π”
这是退格按钮代码:
if ([textView.text length]>0) {
textView.text = [textView.text substringToIndex:([textView.text length]-1)];
}
答案 0 :(得分:4)
我在我的某个应用中做了类似的事情,并且使用setText:
而非textView.text =
没有看到任何问题。
NSUInteger length = [self.textField.text length];
if (length>0) {
[self.textField setText:[text substringToIndex:length-1]];
}
希望这有帮助!
答案 1 :(得分:0)
好吧,我想出了问题并且它是一个混乱的解决方案..无论出于什么原因,当你三个月前通过代码将大约4个月前出现的任何新的unicode字符添加到文本字段时,它会添加unicode字符有一个奇怪的毛刺unicode字符,不存在导致不可复制的文本和2个字符添加...所以现在我需要检测是否按下按钮添加一个字符,如果它改变长度1或2,如果它将长度更改为2它是一个新的unicode字符,我需要在那里进行自动删除,否则如果它只增加一个就可以了,我不需要做任何事情!
我为textView字符串添加的新字符对于每个按钮都是这样的:
length1 = [textView.text length];
textView.text = [textView.text stringByAppendingString:char1String];
length2 = [textView.text length];
if (((length2)-(2))==length1) {
[textView setText:[textView.text substringToIndex:length2-1]];
}