以编程方式开始在另一个表格视图单元格中编辑 UITextField

Posted

技术标签:

【中文标题】以编程方式开始在另一个表格视图单元格中编辑 UITextField【英文标题】:Programmatically begin editing UITextField in another table view cell 【发布时间】:2016-04-13 05:08:10 【问题描述】:

我在每个单元格中有一个 UITableView 和一个 UITextField。当我完成每个文本字段的编辑后,我想以编程方式开始编辑下一个按时间顺序排列的单元格中的文本字段。

func textFieldShouldReturn(textField: UITextField) 中,我将辞去文本字段的第一响应者,并使用tableView.scrollToRowAtIndexPath(scrollIndexPath, atScrollPosition: UITableViewScrollPosition.Bottom, animated: true) 以编程方式滚动到下一个表格视图单元格。

有没有办法开始编辑以下单元格中的文本字段?

【问题讨论】:

您可以通过发送becomeFirstResponder 消息让下一个UITextField 第一响应者 【参考方案1】:

正如 Suryakant 在 cmets 中指出的那样,正如我在发布问题后立即发现的那样,我在 textFieldShouldReturn 中调用了以下内容:

let cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: 1, inSection: 0)) as! CustomTableViewCell

cell.textField.becomeFirstResponder()

这应该可以解决问题。

【讨论】:

不适合我 func textFieldShouldReturn(_ textfield: UITextField, of cell: TableViewCell) \n textfield.resignFirstResponder()\n let nextIndexpath = IndexPath(row: cell.indexPath.row + 1, section: \ncell .indexPath.section) if let nextcell = self.tableView(self.tableview, cellForRowAt: nextIndexpath) as?\n TableViewCell \n nextcell.setSelected(true, animated: false)\n nextcell.textfield.becomeFirstResponder()\n \n \n【参考方案2】:

您可以像下面这样获取单元格并开始第一响应者

let cell = calenderTableView .cellForRowAtIndexPath(indexPath)
cell.textField.becomeFirstResponder()

【讨论】:

以上是关于以编程方式开始在另一个表格视图单元格中编辑 UITextField的主要内容,如果未能解决你的问题,请参考以下文章

在表格视图单元格中以编程方式显示图像

Swift:无法以编程方式编辑自定义表格单元格的属性

以编程方式约束表格单元格中的 UILabel

动态表格视图单元格,以编程方式更改子视图高度

如何仅使用文档编辑器插件中的 office api 在另一个表格单元格中添加表格

以编程方式动态调整多行 UILabel 和随附的表格视图单元格