【问题标题】:Dismiss keyboard when tapped outside of a textview in a scroll view在滚动视图中的文本视图之外点击时关闭键盘
【发布时间】:2014-12-04 12:42:32
【问题描述】:

滚动视图占据了整个视图控制器。一个文本视图被放置在滚动视图中。当用户在键盘外敲击时,我希望关闭键盘。

boostContent 是 textview 的 IBOutlet。

我已经尝试了下面的代码,但它不起作用。

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    self.scrollView.endEditing(true)
    boostContent.resignFirstResponder()

}

什么是正确的解决方案?

我也试过 self.view.endEditing(true)

【问题讨论】:

  • boostContent 是文本视图的名称。谢谢

标签: ios swift


【解决方案1】:

将点击手势识别器添加到保存文本视图的同一视图。把它连接到这个:

@IBAction func tapped(sender: AnyObject) {
    boostContent.resignFirstResponder()
}

我认为您尝试做的问题是您的 touchesBegan 没有被调用,因为它是在您的 ViewController 上定义的,并且滚动视图的内容视图正在拦截触摸。

【讨论】:

    【解决方案2】:

    一种方法是向您的视图控制器添加一个轻击手势,然后让第一响应者在那里辞职。另一种我认为更好的方法是使用容器视图。您将它放在滚动视图中,然后将所有对象(包括文本字段)放入容器视图中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 2017-01-22
      • 2014-04-15
      • 1970-01-01
      相关资源
      最近更新 更多