iphone sdkのUITextViewでカーソルの任意の位置にテキストを挿入できるコードを実装したい
何か案が?前もって感謝します..
私はこのリンクを参照しました: iPhone SDK: How to create a UITextView that insert text where you tap?
しかし、それを取得していません。
iphone sdkのUITextViewでカーソルの任意の位置にテキストを挿入できるコードを実装したい
何か案が?前もって感謝します..
私はこのリンクを参照しました: iPhone SDK: How to create a UITextView that insert text where you tap?
しかし、それを取得していません。
ダンの答えは、テキストを手動で変更することです。UITextView
のとはうまくいきませんUndoManager
。
実際、 および でサポートされているプロトコル API を使用して、テキストを挿入するのは非常に簡単UITextInput
です。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
。