Ios UITextView删除上次输入的文本
IBAction上的几个不同UITextField向我传递了一个UITextView文本Ios UITextView删除上次输入的文本,ios,nsmutablearray,uitextfield,stringwithformat,Ios,Nsmutablearray,Uitextfield,Stringwithformat,IBAction上的几个不同UITextField向我传递了一个UITextView文本 textView.text = [NSMutableString stringWithFormat:@"%@ %@", textView.text,textField1.text]; 我正在尝试从文本视图中删除所选文本 textField.text = [NSMutableString stringWithString:@""]; 但它会删除所有文本,而不仅仅是选定的文本 有人能给我一些关于这方面的指
textView.text = [NSMutableString stringWithFormat:@"%@ %@",
textView.text,textField1.text];
我正在尝试从文本视图中删除所选文本
textField.text = [NSMutableString stringWithString:@""];
但它会删除所有文本,而不仅仅是选定的文本
有人能给我一些关于这方面的指导吗?谢谢。来自苹果文档:
@属性(非原子)NSRange selectedRange
在iOS 2.2及更早版本中,选择范围的长度始终为0,表示选择实际上是一个插入点。在iOS 3.0及更高版本中,选择范围的长度可能为非零
所以我想你应该这样做:
if (textField.selectedRange.location != NSNotFound && textField.selectedRange.length > 0)
textField.text = [textField.text stringByReplacingCharactersInRange:textField.selectedRange withString:@""];
您可以存储上次输入的文本(例如,
LastenteredText
),然后将其从可变字符串对象(例如,Content
)中删除,并将其设置为文本字段:
[theContent deleteCharactersInRange:NSRangeFromString(theLastEnteredText)];
textField.text = theContent;
编辑: 如果在最后一个文本内容之前存在相同的文本内容,您将错误地删除它。因此,这里有一个更好的方法:
// .location: theContentLength - theLastEnteredTextLength
// .lenght: theLastEnteredTextLength
NSRange range = {theContentLength - theLastEnteredTextLength, theLastEnteredTextLength};
[theContent deleteCharactersInRange:range];
不,我得到一个NSString可能没有响应deleteCharactersInRange@user1725650只有
NSMutableString
实例可以响应deleteCharactersRange
。奇怪的是,它仍然给我提供了NSString可能没有响应,但原始输入是一个NSMutableString。@user1725650您可以像这样将NSString传输到NSMutableString:NSMutableString*mutableContent=[nsmutablestringwithstring:immutableContent]代码>