如何在uitextview中的任何光标位置插入文本?

我想实现代码,我可以开始插入文本的任何位置的游标在iPhone SDK中的UITextView

任何想法? 先谢谢你..

我推荐这个链接: iPhone SDK:如何创build一个UITextView插入文本,你点击?

但没有得到它。

丹的答案是手动改变文字。 用UITextView的UndoManager不能很好地播放。

实际上,使用UITextInput协议API(UITextView和UITextField支持)插入文本非常容易。

[textView replaceRange:textView.selectedTextRange withText:insertingString]; 

注意:它是UITextInput协议中的selectedTextRange ,而不是selectedRange

这是我用自定义键盘,似乎工作正常,可能有一个更清洁的方法,不知道。

 NSRange range = myTextView.selectedRange; NSString * firstHalfString = [myTextView.text substringToIndex:range.location]; NSString * secondHalfString = [myTextView.text substringFromIndex: range.location]; myTextView.scrollEnabled = NO; // turn off scrolling NSString * insertingString = [NSString stringWithFormat:@"your string value here"]; myTextView.text = [NSString stringWithFormat: @"%@%@%@", firstHalfString, insertingString, secondHalfString]; range.location += [insertingString length]; myTextView.selectedRange = range; myTextView.scrollEnabled = YES; // turn scrolling back on. 

最简单的方法(但不会replace选定的文本)是使用insertText:方法:

 [textView insertText:@"some text you want to insert"]; 

UITextView符合UITextInput本身符合UIKeyInput

这是Glorfindel在Swift3中的答案。 插入的文本从剪贴板中拉出来。

 if let textRange = myTextView.selectedTextRange { myTextView.replace(textRange, withText:UIPasteboard.general.string!) }