私は UITextInput プロトコルの selectedTextRange プロパティと beginOfDocument プロパティを使用してこれを行ってきましたが、以下の記事で学んだように、UITextField は iOS 5 で UITextInput プロトコルにのみ準拠し始めているため、私のアプリは iOS 4.3 でクラッシュします。iOS 4.3 でこれを行う別の方法が必要です。
UITextField および UITextView の UITextInput プロトコルを使用して選択結果を管理すると、クラッシュが発生します。
これが私が今やっていることです(selfは私のUITextFieldサブクラスです):
UITextRange *selectedTextRange = self.selectedTextRange;
NSUInteger location = [self offsetFromPosition:self.beginningOfDocument
toPosition:selectedTextRange.start];
NSUInteger length = [self offsetFromPosition:selectedTextRange.start
toPosition:selectedTextRange.end];
NSRange selectedRange = NSMakeRange(location, length);