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

Iphone 如何在uitextview中的任意光标位置插入文本?,iphone,ios,uitextview,uitextviewdelegate,Iphone,Ios,Uitextview,Uitextviewdelegate,我想实现一段代码,通过该代码,我可以开始在iphone sdk的UITextView中光标的任何位置插入文本 有什么想法吗? 先谢谢你 我推荐了这个链接: 但我不明白。这是我使用的自定义键盘,似乎工作正常,可能有更干净的方法,不确定 NSRange range = myTextView.selectedRange; NSString * firstHalfString = [myTextView.text substringToIndex:range.location]; NSStrin

我想实现一段代码,通过该代码,我可以开始在iphone sdk的UITextView中光标的任何位置插入文本

有什么想法吗? 先谢谢你

我推荐了这个链接:


但我不明白。

这是我使用的自定义键盘,似乎工作正常,可能有更干净的方法,不确定

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.

丹的答案是手动更改文本。UITextView的UndoManager不能很好地使用它

实际上,使用UITextView和UITextField支持的UITExtOutput协议API插入文本非常容易

[textView replaceRange:textView.selectedTextRange withText:insertingString];
注意:它是在UITEmpute协议中选择的extrange,而不是selectedRange

最简单的方法(但它不会替换所选文本)是使用以下方法:


UITextView
符合
uiteInput
,而uiteInput本身符合
uikeInput

以下是Glorfindel在Swift3中的答案。在此处插入的文本将从剪贴板中拉出

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

如果有人尝试过,请回复。我也在做同样的事情,但没有取得成功,所以请帮助。thanx这是非常有趣的,我用它删除了我的自定义键盘将光标放在文本视图中的单词:)thanx againVery nice。。。谢谢你,丹。
if let textRange = myTextView.selectedTextRange {
   myTextView.replace(textRange, withText:UIPasteboard.general.string!)
}