gpt4 book ai didi

swift - becomeFirstResponder 和 estimatedRowHeight 不兼容

转载 作者:行者123 更新时间:2023-11-28 16:17:59 25 4
gpt4 key购买 nike

我有一个 UITableView 包含 UITableViewCell 包含一个 UITextView

我想要两件事:

  1. 用户可以在 UITextView 中输入文本,它的尺寸会随之增长。
  2. 当用户点击添加按钮时,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()
}

而且它不起作用... :-(

更奇怪的是,如果我删除上面的第一个指令 block (特别是 estimatedRowHeight 指令),becomeFirstResponder 运行良好。

您是否知道执行这两种功能的任何线索?谢谢!

最佳答案

您需要使用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()
}
}

关于swift - becomeFirstResponder 和 estimatedRowHeight 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38876368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com