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

Yuv*_*j.M 6 iphone text replace uitextview ios

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

Ask question here,我已经在textview中保存了文本的范围.文字范围是{17, 0}.我把NSRange带到代表处-(void) textViewDidChange:(UITextView *)textView.

现在我想用替换文本question,answer我想替换文本替换文本后herethem. The UITextView.text look like this,Ask回答它们.

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

ksc*_*ler 11

从iOS 7开始,textView中继承了textStorage,NSMutableAttributedString因此您可以使用这些方法:

[self.textView.textStorage replaceCharactersInRange:withString:];
Run Code Online (Sandbox Code Playgroud)

要么

[self.textView.textStorage replaceCharactersInRange:withAttributedString:];
Run Code Online (Sandbox Code Playgroud)


Bep*_*ppe 4

好吧...我不确定是否正确理解您想要做什么,但是如果您的目标是更改选定范围内的某些字符,您可以按照以下步骤操作:

获取 UITextView 内容并将其放入 NSString 中:

NSString *textViewContent = textView.text;
Run Code Online (Sandbox Code Playgroud)

更改您想要的范围内的字符:

NSString *newContent = [textViewContent stringByReplacingCharactersInRange:range withString:replacement];
Run Code Online (Sandbox Code Playgroud)

用新内容替换旧内容:

textView.text = newContent;
Run Code Online (Sandbox Code Playgroud)

无论如何,如果您只想将在这里询问问题替换为询问回答他们,最快的解决方案就是:

textView.text = @"Ask answer them";
Run Code Online (Sandbox Code Playgroud)