как вставить текст в любую позицию курсора в uitextview?
Home
Вопросы и ответы
как вставить текст в любую позицию курсора в uitextview?
Я хочу реализовать код, с помощью которого я могу начать вставлять текст в любую позицию курсора в UITextView в iphone sdk
любая идея? заранее спасибо..
я сослался на эту ссылку: iPhone SDK: как создать UITextView, который вставляет текст в место касания?
Но не понимаю.
person
kushalrshah
schedule
13.01.2012
source
источник
Ответы (4)
Ответ Дэна - вручную изменить текст. Это плохо работает с UITextView's UndoManager.
На самом деле очень легко вставить текст с помощью API протокола UITextInput, который поддерживается UITextView и UITextField.
[textView replaceRange:textView.selectedTextRange withText:insertingString];
Примечание. В протоколе UITextInput используется selectedTextRange , а не selectedRange .
person
ethanhuang13
schedule
26.03.2014
Это то, что я использую с настраиваемой клавиатурой, похоже, работает нормально, может быть более чистый подход, не уверен.
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.
person
Dan
schedule
18.01.2012
Самый простой способ (но он не заменяет выделенный текст) - использовать _ 1_ :
[textView insertText:@"some text you want to insert"];
UITextView
соответствует UITextInput
, который сам соответствует UIKeyInput
.
person
Glorfindel
schedule
09.09.2016
Вот ответ Глорфинделя в Swift3. Текст, который он вставляет сюда, он вытягивает из буфера обмена.
if let textRange = myTextView.selectedTextRange {
myTextView.replace(textRange, withText:UIPasteboard.general.string!)
}
person
user3069232
schedule
01.04.2017