如何用选定的范围替换UITextView中的文本?

时间:2012-02-01 13:39:46

标签: iphone ios text replace uitextview

我想替换所选范围内的UITextView文本中的文本。这是我的问题。在这里我提到我做了什么?我想做什么?我有一个UITextView并在textview中输入以下文本。

Ask question here,我在textview中保存了文本的范围。文本范围是{17, 0}。我在-(void) textViewDidChange:(UITextView *)textView代表中选择了NSRange。

现在我想用question替换文字answer,我想用here替换文本them. The UITextView.text look like this,替换文本后回答问题。

如何用所选范围替换文本?你能帮我么?提前谢谢。

3 个答案:

答案 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];