29

iPhoneアプリには編集可能なUITextViewがあります。ユーザーがいくつかのツールバーボタンを押したときにカーソル位置にテキストを挿入する必要がありますが、カーソルの現在の位置を見つけるための文書化された(または文書化されていない)方法が見つからないようです。

誰かが何かアイデアを持っていますか、または他の誰かが同様のことを達成しましたか?

4

4 に答える 4

31

drawh が言ったように、UITextView の selectedRange を使用して挿入ポイントを返すことができます。この範囲の長さは常にゼロです。以下の例は、その方法を示しています。

NSString *contentsToAdd = @"some string";
NSRange cursorPosition = [tf selectedRange];
NSMutableString *tfContent = [[NSMutableString alloc] initWithString:[tf text]];
[tfContent insertString:contentsToAdd atIndex:cursorPosition.location];
[theTextField setText:tfContent];
[tfContent release];
于 2009-03-06T15:14:09.213 に答える
10

UITextView selectedRangeテキスト ビューがファーストレスポンダの場合、プロパティを使用して挿入ポイントを見つけます。それ以外の場合、ビューにフォーカスがない場合、このプロパティは を返しますNSNotFound。その場合にカーソル位置を知る必要がある場合は、カーソル位置をメンバー変数に格納できるメソッドのサブクラス化UITextViewとオーバーライドを検討してください。canResignFirstResponder

于 2009-03-06T15:46:29.727 に答える
8

試しましたUITextView.selectedRangeか?を返しますNSRange。その location 要素は、カーソルがどこにあるかを教えてくれるはずです。

于 2009-03-06T14:56:05.670 に答える