我想实现代码,通过它我可以开始在 iphone sdk 的 UITextView 中光标的任何位置插入文本
任何想法?先感谢您..
我引用了这个链接:iPhone SDK:如何创建一个 UITextView,在你点击的地方插入文本?
但没有得到它。
我想实现代码,通过它我可以开始在 iphone sdk 的 UITextView 中光标的任何位置插入文本
任何想法?先感谢您..
我引用了这个链接:iPhone SDK:如何创建一个 UITextView,在你点击的地方插入文本?
但没有得到它。
丹的答案是手动更改文本。UITextView
它与's玩得不好UndoManager
。
实际上,使用和UITextInput
支持的协议 API插入文本非常容易。UITextView
UITextField
[textView replaceRange:textView.selectedTextRange withText:insertingString];
注意:它selectedTextRange
在UITextInput
协议中,而不是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.
最简单的方法(但它不会替换选定的文本)是使用以下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!)
}