6

ページ上のUITextFieldの1つに追加しようとUILongPressGestureRecognizerしていますが、UiTextFieldを長押しするとセレクターメソッドが呼び出されません。UItextFieldに追加しましたが、TextFieldを長押ししてもSelectorメソッドが呼び出されず、フィールドに拡大鏡が表示されます。

[self.tfCustomerStreet addGestureRecognizer:LongPressgesture];

しかし、ビューに追加すると、正常に動作し、セレクタ メソッドを呼び出します。

[[self view] addGestureRecognizer:LongPressgesture];

ViewDidLoad の初期化コード

UILongPressGestureRecognizer *LongPressgesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(LongPressgesture:)];
    [LongPressgesture setMinimumPressDuration:2.0];

.

// Long press gesture reconizer
- (void)LongPressgesture:(UILongPressGestureRecognizer *)recognizer 
{
    if (recognizer.state == UIGestureRecognizerStateEnded) {
        NSLog(@"Long press Ended .................");
    }
    else {
        NSLog(@"Long press detected .....................");
    }        
}

UITextField で動作させるにはどうすればよいか教えてください。

4

1 に答える 1

8

削除する[LongPressgesture setMinimumPressDuration:2.0];と機能します..タブジェスチャが呼び出されてtextFieldの編集を開始するため...またはこのジェスチャデリゲート関数を実装するだけです

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

このメソッドに YES を返すと、同時認識が許可されることが保証されます。

楽しみ :)

于 2012-05-08T11:28:02.630 に答える