【问题标题】:How to get rid of keyboard when user taps background (iPhone) [duplicate]用户点击背景(iPhone)时如何摆脱键盘[重复]
【发布时间】:2010-12-19 15:43:26
【问题描述】:

可能重复:
Dismiss keyboard by touching background of UITableView

我有一个包含 UITableView 和 UITextView 的自定义 UIScrollView。当用户单击文本字段时,键盘会弹出,当用户按键盘上的 Return 键时它也会消失。

问题:当用户点击 UITableView 时如何摆脱键盘?无论我尝试什么,我都无法捕捉到任何触摸事件......使用 iPhone 3.0 SDK,因为这似乎确实有很大的不同。据我了解,触摸事件不会自动重定向到...任何地方!仍然有触摸事件,因为我可以向上/向下滚动表格视图,即使我不想!

当用户按下键盘本身或文本字段以外的其他位置时,我必须做什么才能关闭键盘?

【问题讨论】:

  • 查看this question 的分析器;它使用一个非常简单的手势识别器来做你需要的事情。

标签: iphone cocoa-touch xcode iphone-sdk-3.0 ipod-touch


【解决方案1】:
- (void) tableView:(UITableView *)_tableView didSelectRowAtIndexPath:(NSIndexPath *)_indexPath {
    if ([self.textView isFirstResponder])
        [self.textView resignFirstResponder];
    //...
}

【讨论】:

  • 有效!不知道该说什么,我不知所措...... :D 好的,你能否解释一下为什么它会起作用?真的很好奇!我之前尝试过,例如selectRowAtIndexPath,它从未被调用过。这个“tableView:(UITableView *)_tableView”是什么神奇的东西,什么情况下可以使用?
  • "if([self.textView isFirstResponder]) 不是必需的,因为如果 resignFirstResponder 不是第一响应者,它将什么也不做,如果它是第一响应者,它将摆脱键盘。跨度>
  • 如果没有他们正在点击的行,那么这似乎不起作用,即。 TableView 未满。你如何检测他们是否点击了 TableView 本身?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-12
相关资源
最近更新 更多