0

UITextView に UITapGestureRecognizer を追加しました。numberOfTapsRequired を 1 に設定しましたが、これを ANY にする必要があります。aField は UITextView です。セレクターを呼び出すには、何回でもタップする必要があります。これを行う方法はありますか?

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stateFieldSelected)];
singleTap.numberOfTapsRequired = 1;
[aField addGestureRecognizer:singleTap];

目的は、State フィールドをタップしたときに UIPickerView を起動することですが、state フィールドをダブルまたはトリプルタップすると、キーボードが表示されます。多くのジェスチャ認識機能を追加できますが、そうしなければならないように思えます。

4

1 に答える 1

2

ビューで複数のジェスチャ レコグナイザーを使用しても問題はありません。ただし、ダブル タップ アクションに加えてシングル タップ アクションが 2 回呼び出されることが心配な場合は、シングル タップ レコグナイザーがダブル タップ レコグナイザーの失敗を要求するように指定できます。

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(someOtherMethod)];
[doubleTap setNumberOfTapsRequired:2];
[aField addGestureRecognizer:doubleTap];

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stateFieldSelected)];
[singleTap setNumberOfTapsRequired:1];
[singleTap requireGestureRecognizerToFail:doubleTap];
[aField addGestureRecognizer:singleTap]; 
于 2012-11-19T22:37:46.840 に答える