【问题标题】:Tapping a UIScrollView to hide the keyboard?点击 UIScrollView 隐藏键盘?
【发布时间】:2011-03-30 19:30:39
【问题描述】:

(我以前匿名发过这个,但后来不能再用同一台电脑了,所以我现在从我的帐户发。对不起之前回答的人。)

我正在开发一个 iPhone 应用程序,该应用程序涉及在 UITextView 中输入内容,从而将内容添加到 UITableView。问题是,我需要能够在用户完成后关闭键盘,此时除了键盘和 UITextView 之外真正可见的唯一区域是 UITableView。我在 UITableView 上实现触摸事件时遇到问题(例如,在任何地方触摸 UITableView,而不仅仅是 didSelectRowAtIndexPath :)。这是我在视图控制器中使用的代码,但由于某种原因,它根本没有被执行:

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
 [textView resignFirstResponder];
} 

有什么建议吗?

【问题讨论】:

    标签: iphone uitableview keyboard hide touch


    【解决方案1】:

    “这是我在视图控制器中使用的代码”

    这是你的问题 - 你必须创建 UITableView 的子类并将函数放入其中,然后才能获得这些触摸事件。

    【讨论】:

    • 谢谢你,我现在得到了触摸事件 - 但键盘仍然没有隐藏。关于如何让那个键盘隐藏的任何想法?
    • 尝试检查 [textView isFirstResponder] - 如果 resignFirstResponder 没有消失,您很可能会将其发送到错误的对象。
    • 酷,我刚刚遍历了 UITableView 的所有超级视图的子视图,检查了 isFirstResponder,如果返回 true,则调用 resignFirstResponder。非常感谢你的帮助,你不知道我有多感激。
    【解决方案2】:

    UITableView 上放置一个隐形按钮并锁定水龙头。

    【讨论】:

    • 但是如果我这样做,用户不会无法滚动 UITableView 吗?
    【解决方案3】:

    是的,我刚刚说过要设置一个断点,以确保 resignFirstResponder 确实被调用并且在正确的文本字段上被调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多