【问题标题】:Custom keyboard backspace button自定义键盘退格按钮
【发布时间】:2012-03-25 22:05:20
【问题描述】:

我用我自己的 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)];
    }

【问题讨论】:

  • 您是如何创建自定义键盘的?因为这听起来像是键盘和您实现它的方式而不是您提供的代码的问题。
  • 到目前为止,它们只是按钮,仅此而已.. 当您按下这些按钮时,它会运行我提供的代码,
  • 好的,嗯,这段代码是在后台运行还是在主线程上运行。试图操纵 UI 的后台线程会做各种不可预知的事情。
  • 不确定这是否有帮助,但我发现这篇使用自定义键盘的帖子stackoverflow.com/questions/3539520/uitextview-inputview
  • Ugg,非常讨厌!我讨厌不得不做那样的事情。祝你好运。

标签: ios unicode keyboard


【解决方案1】:

我正在我的一个应用程序中执行类似的操作,并且使用 setText: 而不是 textView.text = 没有发现任何问题。

NSUInteger length = [self.textField.text length];
if (length>0) {
    [self.textField setText:[text substringToIndex:length-1]];   
}  

希望这会有所帮助!

【讨论】:

  • 我仍然遇到问题/:嗯,这是一个有趣的问题,我不知道是什么原因造成的,因为代码似乎很好!
【解决方案2】:

好吧,我发现了问题,这是一个混乱的解决方案.. 无论出于何种原因,当您三重奏将大约 4 个月前出现的任何新 unicode 字符添加到文本字段时,它会同时添加该 unicode 字符有一个不存在的奇怪故障 unicode 字符导致不可复制的文本和添加了 2 个字符......所以现在我需要检测是否按下按钮添加字符,如果它将长度更改为 1 或 2,如果它将长度更改为 2 它是一个新的 unicode 字符,我需要在那时和那里进行自动删除,否则如果它只增加 1 就可以了,我不需要做任何事情!

对于每个按钮,我向 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]];   
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-03
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 2014-10-27
    • 1970-01-01
    相关资源
    最近更新 更多