2

私は 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);
4

1 に答える 1

1

ユーザーが UITextField でテキストを選択したとします。iOS 4 がフィールドの下に「選択してコピー」というタグ行を追加すると、クリップボードからテキストを取得できます (ただし、クリップボードが変更されたときに通知を受け取ることができるかどうかはわかりません)。

または、何らかのキー (削除キーも含む) をタップさせることもできます。テキスト デリゲート メソッド「shouldChangeCharactersInRange:」では、範囲を取得し、変更しないように NO を返すことができます。

于 2012-08-08T16:27:03.723 に答える