ジェスチャ認識機能を使用している場合は、このようにする必要があります
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(methodThatYouMayCall)];
[myTextField addGestureRecognizer:gestureRecognizer];
gestureRecognizer.delegate = self;
gestureRecognizer.cancelsTouchesInView = NO;
これにより、テキストフィールドがクリアされ、クリアボタンをクリックすると「methodThatYouMayCall」が起動されるため、これも実行する必要があります。textField.clearButtonModeは一種のUIButtonクラスであるため、この方法で実行できます。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[UIButton class]])
{
return NO;
}
else
{
return YES;
}
}
クラスをUIGestureRecognizerDelegateプロトコルを実装するものとしてマークすることを忘れないでください。これがお役に立てば幸いです。