textFieldDidEndEditing 在 tableview 中不起作用

textFieldDidEndEditing not working in tableview

我有一个 tableview,其中有多个 sectionrows

每一行都有一个 textField,问题是我想将 textField 的文本保存在一个 dictionary 中,其标签作为键和 textfield 文本作为价值。

我想在用户触摸其他地方时(或者如果可能,当用户停止输入时)立即保存它。我使用了 textFieldDidEndEditing 但它没有用。

我在 cellForRowAt 委托函数中声明了“textfield.delegate=self”。这是错的吗?我应该怎么办?

提前致谢。

虽然问题缺少一些信息,但是您可以使用两种方式检测 textField textFieldDidEndEditing

第一种方式) 正如你所做的那样,在 cellForRowAt

textField.delegate = self

并确保视图控制器以这种方式符合协议 UITextFieldDelegate

extension ViewController: UITextFieldDelegate {
   func textFieldDidEndEditing(_ textField: UITextField) {
       print(textField.tag, " -> ", textField.text)
   }
}

第二种方式) 右键点击故事板上的textField,然后从Event (Editing Did End)拖到class单元格的文件

两种方式见下方截图