我正在开发一个代码,我需要从UITextView
执行删除和退格操作。
我试过了:
-(IBAction)delete:(id)sender{
uitextview.text =[uitextview.text substringToIndex:[uitextview.text length]-1];
}
执行后退空格并删除最后一个字符,但如何从特定光标位置uitextview
中的特定位置删除字符。
请帮帮我。
答案 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;