以编程方式开始在另一个表格视图单元格中编辑 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的主要内容,如果未能解决你的问题,请参考以下文章