gpt4 book ai didi

ios - 如何从 textFieldDidEndEditing 访问自定义 UITableViewCell?

转载 作者:行者123 更新时间:2023-11-28 13:52:11 24 4
gpt4 key购买 nike

我有一个自定义 UITableViewCell我在其中添加了 UITextField ,我想对文本字段执行一些验证并设置 hasError单元格上的属性可能会向单元格添加错误标签并更改文本字段的背景色。

我没有使用 Storyboard并创建我的自定义单元格/UITableViewCell以编程方式。

我正在使用 textFieldDidEndEditing在我的 UIViewController检测文本更改并且无法访问单元格,设置我的 hasError属性(property)。

我想我可以通过标签循环 View /文本字段以填充文本字段然后获得它的父级。

或者也许我应该实现我自己的 textFieldDidEndEditing 版本然后触发另一个事件,该事件将单元格和文本字段作为参数。

但我不确定这是否是最好的方法或如何触发事件。

最佳答案

您可以使用协议(protocol)https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/Protocol.html

一个简单的例子:

cellForRow

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = ....
cell.delegate = self
return cell
}

您的 UITableViewCell 子类:

class Cell: UITableViewCell, UITextFieldDelegate {

// MARK: - Properties

weak var delegate: CellDelegate?
....

// MARK: - Functions

func textFieldDidEndEditing(_ textField: UITextField) {
self.delegate?.cell(self, textFieldDidEndDiting: textField)
}
}

您的协议(protocol)

protocol CellDelegate: class {
func cell(_ cell: Cell, textFieldDidEndDiting textField: UITextField)
}

最后,像这样让你的 Controller 符合该协议(protocol):

class ViewController: UIViewController, CellDelegate {

func cell(_ cell: Cell, textFieldDidEndDiting textField: UITextField) {

}

}

关于ios - 如何从 textFieldDidEndEditing 访问自定义 UITableViewCell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54417712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com