自定义键盘退格按钮

时间:2012-03-25 22:05:21

标签: ios unicode keyboard

我已经创建了一个带有我自己的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)];
    }

2 个答案:

答案 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]];   
}