objective-c - 从 UIGestureRecognizer 中排除表格以隐藏键盘

标签 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;
}

如何排除表格?

最佳答案

我还没有找到问题的答案,但我确实找到了一种可以满足我需要的解决方法。我没有尝试找出如何排除表,而是做了相反的事情。

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

关于objective-c - 从 UIGestureRecognizer 中排除表格以隐藏键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366612/

相关文章:

ios - self.property = objective-c 中的 self.property

objective-c - block 和幻象 block 参数交换的奇怪崩溃

objective-c - NSCollectionViewItem 双击 Action ?

macos - OS X 应用程序菜单栏未显示正确的标题

objective-c - 如何为自定义 NSImageRep 子类实现 -draw

iphone - UIImageView 显示不正确

ios - UITapGestureRecognizer 以编程方式在我的 View 中触发点击

ios - 检测 MKMapView 何时停止移动

ios - 在 iPhone 中呈现 `UIViewController`,就像在 iPad 中一样

iphone - iOS 按住手势 + 点击