【问题标题】:custom iPhone backspace and enter buttons自定义 iPhone 退格和输入按钮
【发布时间】:2010-10-04 13:50:27
【问题描述】:

我在自定义 iPhone 键盘上的自定义退格和输入按钮有问题,

退格键:我的代码只是删除了行尾的字符,而不是光标位置的字符。

if ([textView.text length]>0) textView.text = [textView.text substringToIndex:([textView.text length]-1)];

阅读了这个问题Custom keyboard iphone , having problem with backspace button in UITextView,但没有解决我的问题。

回车:我有同样的问题,比如退格回车按钮只是在句子末尾插入新行而不是从光标位置。

textView.text = [NSString stringWithFormat:@"%@\n", textView.text];

我应该如何更改我的代码才能正常工作?谢谢你

编辑: //退格键代码:

NSRange deleteRange = textPad.selectedRange;
deleteRange.length -= 1;
if ([textPad.text length]>0) textPad.text = [textPad.text stringByReplacingCharactersInRange:deleteRange withString:@""];

【问题讨论】:

    标签: iphone ios4


    【解决方案1】:

    这是最好的 iphone 自定义退格代码 :D :

      NSRange deleteRange = textPad.selectedRange;
    
            if (deleteRange.length >0)
            textPad.text = [textPad.text stringByReplacingCharactersInRange:deleteRange withString:@""];
    
    
            else
    
                if (deleteRange.location > 0)
                textPad.text =  [textPad.text  stringByReplacingCharactersInRange:NSMakeRange(deleteRange.location-1,1) 
     withString:@""];
    
    deleteRange.location--;
    deleteRange.length = 0;
    textPad.selectedRange = deleteRange;
    

    【讨论】:

      【解决方案2】:
      textView.text = [textView.text stringByReplacingCharactersInRange:textview.selectedRange withString:@"\n"]; // Replace the selected characters with a new line
      

      textView.text = [textView.text stringByReplacingCharactersInRange:textview.selectedRange withString:@""]; // Delete the selected character
      

      【讨论】:

      • 非常感谢,对不起,我是 iphone sdk 的新手,关于退格,我只想删除任何范围内的一个字符。您的代码只是删除选定的文本而不是 1 个字符。
      • 你能再帮我一次长度 -1 吗?
      • 抱歉,最近几个小时没在线。好的,这里是只删除长度减去一个字符的代码: NSRange deleteRange = textview.selectedRange; deleteRange.length -= 1; // 这会将范围从其原始长度缩小到长度 - 1。您可以将其设置为任何您想要的。 textView.text = [textView.text stringByReplacingCharactersInRange:deleteRange withString:@""]; // 而不是删除选定的字符,而是从新范围中删除字符` Edit: No Code tags or cmets?! FFFFUUUUU D:
      • 谢谢,好几个小时都不在线 :D,我使用了你的代码,但是编译器给了我 SIGBART 错误并且应用程序崩溃了!!我编辑了我的问题并编写了您建议的代码
      【解决方案3】:

      您可以使用 UITextView selectedRange 方法来确定所选文本的开始和结束,并从该范围而不是从字符串的末尾删除。

      【讨论】:

      • 请你帮我看看好吗?:(我真的需要答案
      猜你喜欢
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      相关资源
      最近更新 更多