【问题标题】:Check row selected for textfield in tableview cell using Swift?使用 Swift 检查表格视图单元格中为文本字段选择的行?
【发布时间】:2015-08-29 06:41:36
【问题描述】:

我正在尝试创建一个表格视图,用户可以在其中编辑每个单元格上的文本字段。每个单元格还允许转换到另一个详细视图控制器。当用户点击单元格的文本字段时,它应该允许编辑输入文本并将其分别存储到一个数组中。

问题是,当使用 Swift 点按文本字段时,如何检查选定的单元格/行? (我可以检查被点击的单元格,但不能检查单元格中文本字段的情况。)

【问题讨论】:

    标签: ios iphone swift uitableview uitextfield


    【解决方案1】:

    有几种方法可以做到这一点。

    superview property of your text field 将是您的 UITableViewCell(除非您将它嵌入到中间的另一个视图中)。

    在我自己的代码中,我经常将 UITableViewCell(有时甚至是单元格内的控件)子类化,以赋予它一个属性来指示我们正在处理的行号。

    【讨论】:

    • 如何访问另一类 TableViewCell 中选择的行的整数值?您介意在代码中提供一些提示吗?谢谢!
    • 你会想要类似NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; (more detail here)
    【解决方案2】:

    每个文本字段都有一个tag 属性,可以使用textField.tag 访问该属性。 如果您使用的是自定义单元格,请在 cellForRowAt indexPath 下添加一行代码,为您的文本字段分配标签。

    let cell = tableView.dequeueReusableCell(withIdentifier: "<identifier>", for: indexPath) as? <customTableViewCell>
    cell?.textField.tag = indexPath.row
    //perform other cell operations
    

    将您的 TableViewController 设为 UITextFieldDelegate,并在 textFieldDidEndEditing 下访问 tag 属性以了解编辑了哪个 textField

    func textFieldDidEndEditing(_ textField: UITextField) {
            print("textfield tag \(textField.tag)")       
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      相关资源
      最近更新 更多