如何执行退格和删除?

时间:2011-10-24 12:22:11

标签: ios uitextview

我正在开发一个代码,我需要从UITextView执行删除和退格操作。 我试过了:

-(IBAction)delete:(id)sender{
    uitextview.text =[uitextview.text substringToIndex:[uitextview.text length]-1];
}

执行后退空格并删除最后一个字符,但如何从特定光标位置uitextview中的特定位置删除字符。

请帮帮我。

2 个答案:

答案 0 :(得分:0)

使用selectedRange的{​​{1}}属性。这表示光标位置和/或所选文本(如果未选择文本,则长度将为零)。

因此,如果range.length是> 0,您可以使用UITextView删除所选文本。

否则,创建一个新的范围,其位置小于所选范围和长度1,然后删除此字符。

您可能需要重新设置stringByReplacingCharactersInRange:withString:属性以确保光标最终位于适当的位置。我想这一切都是在使用标准键盘时自动完成的。

答案 1 :(得分:0)

感谢您的建议。我想建议一种方法来完成这项工作。

NSRange range = uitextview.selectedRange;

    NSRange selectedRange = uitextview.selectedRange;

    NSLog(@"%d",selectedRange.length);
    NSLog(@"%d",selectedRange.location);
    int temploc=selectedRange.location;

    NSMutableString *text = [uitextview.text mutableCopy];
    // NSLog(@"Length: %d Location: %d", range.length, range.location);
    if (range.length > 0) {
        [text deleteCharactersInRange:range];
    }
    if (range.length == 0 && range.location != 0) {
        NSRange backward = NSMakeRange(range.location - 1, 1);
        // NSLog(@"Length: %d Location: %d", backward.length, backward.location);
        [text deleteCharactersInRange:backward];
    }

    uitextview.text = text;