从UIGestureRecognizer中排除表以隐藏键盘

时间:2012-04-28 19:03:34

标签: objective-c cocoa uigesturerecognizer

当用户点击文本字段之外时,我正在使用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;
}

如何排除表格?

1 个答案:

答案 0 :(得分:2)

我没有找到我的问题的答案,但我确实找到了一个可以满足我需要的解决方法。我没有试图找出如何排除表格,而是反过来。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{            
if (touch.view == [self view])
{
    return YES;
}
return NO;
}