我的UITableView
包含UITableViewCell
,其中包含UITextView
。
我想要两件事:
UITextView
中输入文字,其尺寸会根据它增长。textView
成为第一响应者。1.第一个目标已实施为:
self.tableView.estimatedRowHeight = 44
self.tableView.rowHeight = UITableViewAutomaticDimension
func textViewDidChange(textView: UITextView) {
tableView.beginUpdates()
tableView.endUpdates()
}
并且效果很好
2.对于第二件事,我只是写道:
@IBAction func addButton(sender: AnyObject) {
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! MyCell
cell.cellTextView.resignFirstResponder()
cell.cellTextView.becomeFirstResponder()
}
它不起作用......: - (
更奇怪的是,如果我删除上面的第一个指令块(特别是estimatedRowHeight
指令),becomeFirstResponder
效果很好。
您是否有任何线索可以执行这两项功能? 谢谢!
答案 0 :(得分:1)
您需要使用cellForRowAtIndexPath
方法获取获取单元格:
@IBAction func addButton(sender: AnyObject) {
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top, animated: false) // add this line if you wish to scroll for input
if let cell = tableView.cellForRowAtIndexPath(indexPath) as? MyCell {
view.endEditing(true)
cell.cellTextView.becomeFirstResponder()
}
}