在滚动视图中点击文本视图外部时关闭键盘

时间:2014-12-04 00:06:46

标签: ios swift

scrollview占用了整个viewcontroller。 textview位于scrollview中。我想在使用键盘外面时关掉键盘。

boostContent是textview的IBOutlet。

我已经尝试过以下代码,但它无法正常工作。

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

}

什么是正确的解决方案?

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

2 个答案:

答案 0 :(得分:3)

将Tap Gesture Recognizer添加到包含文本视图的同一视图中。将其连接到:

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

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

答案 1 :(得分:0)

一种方法是向视图控制器添加点按手势,并将第一响应者重新签名。另一种方式,我认为是更好的方法,是使用容器视图。您将它放在scrollview中,然后将所有对象(包括文本字段)放在容器视图中。