如何在 TableViewCell 类中的 TextField 委托方法上获取单元格索引
Posted
技术标签:
【中文标题】如何在 TableViewCell 类中的 TextField 委托方法上获取单元格索引【英文标题】:How to get Cell Index on TextField Delegate Method in TableViewCell Class 【发布时间】:2018-07-24 07:23:28 【问题描述】:请查看下面的代码。我想在文本字段开始编辑时获取单元格索引。
class SingleLineText: UITableViewCell, UITextFieldDelegate
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool
let cell: SingleLineText = textField.superview!.superview as! SingleLineText
let table: UITableView = cell.superview as! UITableView
let textFieldIndexPath = table.indexPath(for: cell)
print(textFieldIndexPath as Any)
return true
【问题讨论】:
似乎是什么问题? 在这一行崩溃让单元格:SingleLineText = textField.superview!.superview as!单行文本 不要强制解包选项。同时显示您的SingleLineText
完整代码。或者至少显示视图层次结构的代码。
【参考方案1】:
在 cellForRowAt 方法中只需添加:
youCell.textField.tag = indexPath.row
并像这样使用它:
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool
let indexPath: IndexPath = IndexPath(row: textField.tag, section: 0)
//here is your indexPath
return true
【讨论】:
以上是关于如何在 TableViewCell 类中的 TextField 委托方法上获取单元格索引的主要内容,如果未能解决你的问题,请参考以下文章
我的 TableViewCell 自定义类中的 IbOutlet 从未被初始化
从 tableViewCell 类中获取 indexPath [重复]
点击 UITableViewCell 类中的 UIImageView 时如何打开新屏幕?
自定义tableviewcell中的文本字段在滚动时离开单元格