kus*_*hah 16 iphone uitextview uitextviewdelegate ios
我想实现Code,通过它我可以开始在iphone sdk中的UITextView中的光标的任何位置插入文本
任何的想法?先感谢您..
我引用了这个链接:iPhone SDK:如何创建一个UITextView,在您点按的位置插入文本?
但没有得到它.
eth*_*g13 24
Dan的答案是手动更改文本.它与UITextView的UndoManager不兼容.
实际上,使用UITextInput协议API插入文本非常容易,UITextView和UITextField支持该协议API.
[textView replaceRange:textView.selectedTextRange withText:insertingString];
Run Code Online (Sandbox Code Playgroud)
注意:它是UITextInput协议中的selectedTextRange,而不是selectedRange
Dan*_*Dan 11
这是我使用自定义键盘,似乎工作正常,可能有一个更清洁的方法,不确定.
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.
Run Code Online (Sandbox Code Playgroud)
最简单的方法(但不会替换所选文本)是使用以下insertText:
方法:
[textView insertText:@"some text you want to insert"];
Run Code Online (Sandbox Code Playgroud)
UITextView
符合UITextInput
其本身符合UIKeyInput
.
这是 Glorfindel 在 Swift3 中的回答。在此处插入的文本会从剪贴板中拉出。
if let textRange = myTextView.selectedTextRange {
myTextView.replace(textRange, withText:UIPasteboard.general.string!)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8421 次 |
最近记录: |