2

UIGestureRecognizerを使用して、ユーザーがテキストフィールドの外側をタップしたときにキーボードを辞任しています。これは問題なく機能しており、3つのボタンを除外できましたが、ページに2つのテーブルを追加したため、shouldReceiveTouchからそれらを除外する方法が見つかりません。

これは関連するコードです:

- (void)viewDidLoad
{
.....
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[[self view] addGestureRecognizer:gestureRecognizer];
[gestureRecognizer setDelegate:self];
}

- (void)hideKeyboard
{
[tradeQuantity resignFirstResponder];
[tradeSymbol resignFirstResponder];
[limitPrice resignFirstResponder];
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{        
if (touch.view == placeTradeButton)
{
    return NO;
} else if (touch.view == resetValuesButton)
{
    return NO;
} else if (touch.view == refreshDataButton)
{
    return NO;
} else if (touch.view == secHoldingsTable)
{
    return NO;
} else if (touch.view == tradeTicketsTable)
{
    return NO;
}
return YES;
}

テーブルを除外するにはどうすればよいですか?

4

1 に答える 1

2

質問に対する答えは見つかりませんでしたが、必要なことを行う回避策を見つけました。テーブルを除外する方法を見つけようとする代わりに、逆のことをしました。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{            
if (touch.view == [self view])
{
    return YES;
}
return NO;
}
于 2012-04-29T14:41:04.813 に答える