通过触摸UITableViewContoller的背景隐藏键盘

时间:2015-01-18 01:12:30

标签: uitableview swift

想触摸UITableViewContoller的背景时隐藏键盘。目前我已经实现了在按下返回的同时移除键盘,但在外面某处按下时仍然无法正常工作。我的代码:

class SecondViewController: UITableViewController, UITextFieldDelegate {
...
    // Hide Keyboard while pressing return
    func textFieldShouldReturn(textField: UITextField) -> Bool {

        tb_Name.resignFirstResponder()
        tb_Description.resignFirstResponder()

        return true
    }

    // Hide Keyboard while pressing somewhere on the UI
    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
        self.view.endEditing(true)
    }
}

奇怪的是,当我在“普通”视图控制器中添加此代码时,它可以正常工作。在表视图控制器中没有。

THX。

1 个答案:

答案 0 :(得分:0)

您可以尝试在其上添加手势:

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] 
initWithTarget:self action:@selector(hideKeyboard)]; 
tapGestureRecognizer.cancelsTouchesInView = NO; 
[self.tableView addGestureRecognizer:tapGestureRecognizer];

实际上有很多方法可以解决这个问题,这实际上取决于你想要的行为。