在 UItableView 中处理 UItextfield 的委托

Handling delegate of UItextfield in UItableView

我的 UItable 中的一个单元格中有一个 UItextfield,我希望在文本字段 return 之后可以执行几个步骤:

  1. 清除开头和结尾的空白(Trim 空格)
  2. 辞去第一响应者(隐藏键盘)
  3. 设置选中单元格
  4. 将字段的文本内容附加到 [String]

但到目前为止我只能执行其中的一部分,因为第 3 点在 TableViewCell class 而第 4 点在 TableViewController 中。 我已尝试将 UItextField 出口设置为 class,但它不起作用 Text_NewName.delegate = 自己 或者我应该访问 UITableViewCell class 中的 [String] 吗?但是当我尝试将其设置为subclass时,swift提示错误'Multiple inheritance from classes'

我相信我的知识一定存在一些差距,使这些功能变得困难,如果有更简单的方法也可以让我知道。

代码如下:

class Namelist_ADDName_TVCell: UITableViewCell, UITextFieldDelegate {
override func awakeFromNib() {
    super.awakeFromNib()
    Text_NewName.delegate = self
}
@IBOutlet weak var Text_NewName: UITextField!

func textFieldShouldReturn(_ textField: UITextField) -> Bool {

    textField.text = textField.text?.trimmingCharacters(in: .whitespaces)
    textField.resignFirstResponder()

    if textField.text != "" {
        self.isSelected = true
        return true
    } else {
        self.isSelected = false
        return false
    }

}

另一个 swift 文件:

class PickNameTVC: UITableViewController, UITextFieldDelegate {

var selectedlist : [String]?

func textFieldShouldReturn(_ theTextfield: UITextField) -> Bool {

    if theTextfield.text != "" {
        selectedlist?.append(theTextfield.text!)
    }
    return true
}
}

管理 PickNameTVC 上的所有内容。

创建单元格时设置 delegate override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 方法将您的委托设置为 cell.textField.delegate = self(其中 cell 是您在该方法中出队的单元格)。