如何在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!) }