我想替换所选范围内的UITextView文本中的文本。这是我的问题。在这里我提到我做了什么?我想做什么?我有一个UITextView并在textview中输入以下文本。
Ask question here
,我在textview中保存了文本的范围。文本范围是{17, 0}
。我在-(void) textViewDidChange:(UITextView *)textView
代表中选择了NSRange。
现在我想用question
替换文字answer
,我想用here
替换文本them. The UITextView.text look like this,
替换文本后回答问题。
如何用所选范围替换文本?你能帮我么?提前谢谢。
答案 0 :(得分:10)
从iOS 7开始,textView中的textStorage继承自NSMutableAttributedString
,因此您可以使用这些方法:
[self.textView.textStorage replaceCharactersInRange:withString:];
或
[self.textView.textStorage replaceCharactersInRange:withAttributedString:];
答案 1 :(得分:4)
嗯......我不确定您是否正确理解了您要做的事情,但如果您的目标是更改所选范围内的某些字符,则可以按照以下步骤操作:
获取您的UITextView内容并将其放入NSString:
NSString *textViewContent = textView.text;
更改所需范围内的字符:
NSString *newContent = [textViewContent stringByReplacingCharactersInRange:range withString:replacement];
将旧内容替换为新内容:
textView.text = newContent;
无论如何,如果你只想用代替回答取代提问,最快的解决方案就是:
textView.text = @"Ask answer them";
答案 2 :(得分:0)
从我的头顶解决方案..
NSArray *Dividedstring = [[self.TextView.text] componentsSeparatedByString:@" question here "]; // this will divide the string into two parts ..one before question here and second after question here.
NSString * firstpart = [Dividedstring objectAtIndex:0];
NSString * secondpart = [Dividedstring objectAtIndex:0];
self.TextView.text = [NSString stringwithFormat:@"%@ answer here %@",firstpart,secondpart];