我的自定义退格键有问题,并在自定义iPhone键盘上输入按钮,
Backspace:我的代码只删除行尾的字符而不是光标位置。
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];
我应该如何更改我的代码才能正常工作?谢谢
编辑: // BACKSPACE按钮代码:
NSRange deleteRange = textPad.selectedRange;
deleteRange.length -= 1;
if ([textPad.text length]>0) textPad.text = [textPad.text stringByReplacingCharactersInRange:deleteRange withString:@""];
答案 0 :(得分:4)
这是最好的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;
答案 1 :(得分:3)
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
答案 2 :(得分:1)
您可以使用UITextView selectedRange方法确定所选文本的开头和结尾,并从该范围而不是从字符串末尾删除。