如何在 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中的文本字段在滚动时离开单元格

自定义 TableViewCell 中的标签不能是多行或换行

UIImageView 不是 StackView 和 TableViewCell 中的自动高度