UILongPressGestureRecognizerをUITextfieldに追加しようとしています。しかし、私はそれを適切に動作させることができないようです。私が欲しいのは、デフォルトの長押し動作(虫眼鏡と「貼り付け」オプション)をオーバーライドするだけでなく、入力するためにテキストフィールドをタップする機能を維持することです。以下のコードでは、虫眼鏡が表示され、textFieldLongPressed
メソッドに入っても、正しい状態になることはありません。何か案は?
- (void) addLongPressRecognizer: (UIView *) view
{
UILongPressGestureRecognizer *gestureRecognizer = [[UILongPressGestureRecognizer alloc] init];
[gestureRecognizer addTarget:self action:@selector(textFieldLongPressed:)];
gestureRecognizer.delegate = self;
[view addGestureRecognizer: gestureRecognizer];
self.myGestureReconginzer = gestureRecognizer;
}
- (void) textFieldLongPressed:(UILongPressGestureRecognizer*)sender
{
if (sender.state == UIGestureRecognizerStateBegan)
{
[self.delegate textFieldLongPressed:self];
}
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if(gestureRecognizer == self.myGestureReconginzer)
{
//I've tried it with and without the following line
// [self textFieldLongPressed:(UILongPressGestureRecognizer*) gestureRecognizer];
return YES;
}
else if([gestureRecognizer class] == [UILongPressGestureRecognizer class])
{
return NO;
}
return YES;
}