我创建了一个自定义的 UITableViewCell
,并将一个 UITextView
放入这个原型(prototype)单元格中。当我点击这个 textView 时,键盘会自动弹起。但是,如果我想隐藏键盘,则必须单击 Return
键。不太方便。
问题来了。
当我滚动 tableview 时,如何退出 textView 的 firstResponder
以隐藏键盘。
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
}
以下是我实现的一些方法。
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool{
if(text == "\n"){
textView.resignFirstResponder()
return false
}
return true
}
而且我不知道如何实现这个方法。
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
}
最佳答案
你可以尝试在 viewDidLoad
上实现它,它会在 tableview 开始拖动时自动关闭键盘:
tableView.keyboardDismissMode = .Interactive
或 .OnDrag
关于ios - UITableViewCell 中的 UITextView,如何在 tableView 滚动时退出 textview 的 firstResponder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39078754/