在UITableViewCell里面的UITextView,当tableView滚动时如何重新签名textview的firstResponder?

Man*_*yan 7 uitableview uitextview first-responder ios swift

我创建了一个自定义UITableViewCell,并且UITextView放在这个原型单元格中.当我单击此textView时,键盘可以自动弹跳.但是,如果我想隐藏键盘,我将不得不点击Return键.这不太方便.

这是问题所在.firstResponder当我滚动tableview时,如何重新设置textView 以隐藏键盘.

cellForRowAtIndex 方法如下.

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = UITableViewCell()
    if(indexPath.section == 0){
        cell = self.tableView.dequeueReusableCellWithIdentifier("InputCell")!
        let textView = cell.viewWithTag(102) as! UITextView
        textView.editable = true
        textView.keyboardType = UIKeyboardType.Default
        textView.delegate = self
        textView.targetForAction(#selector(FeedBackViewController.getTextViewInsideCell(_:)), withSender: textView)
    }
    if(indexPath.section == 1){
        cell = self.tableView.dequeueReusableCellWithIdentifier("ConfirmButtonCell")!
        let label = cell.textLabel
        label?.text = "send"
        label?.textAlignment = NSTextAlignment.Center
        label?.textColor = UIColor.redColor()
    }
    return cell
}
Run Code Online (Sandbox Code Playgroud)

以下是我实施的一些方法.

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool{
    if(text == "\n"){
        textView.resignFirstResponder()
        return false
    }
    return true
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何实现这个方法.

func scrollViewWillBeginDragging(scrollView: UIScrollView) {

}
Run Code Online (Sandbox Code Playgroud)

Tj3*_*j3n 6

您可以尝试实现此功能viewDidLoad,它将在tableview开始拖动时自动关闭键盘:

tableView.keyboardDismissMode = .Interactive 要么 .OnDrag