我有一个自定义UITableViewCell
,在其中添加了UITextField
,我想在文本字段上执行一些验证,并在单元格上设置一个hasError
属性以添加单元格上的错误标签,并更改文本字段的背景色。
我没有使用情节提要,并没有以编程方式创建我的自定义单元格/ UITableViewCell
。
我正在textFieldDidEndEditing
中使用UIViewController
来检测文本更改并且无权访问单元格,以设置我的hasError
属性。
我想我可以通过一个标签在视图/文本字段中循环来设置文本字段的字段,然后获得它的父级。
或者我应该实现自己的textFieldDidEndEditing
版本,然后触发另一个以单元格和文本字段为参数的事件。
但是我不确定这是最好的方法还是触发事件的方法。
答案 0 :(得分:1)
您可以使用SELECT a.*, b.itemColour,b.itemColourName FROM itemorders
AS a INNER JOIN CatalogueItemsColour AS b ON a.colourID = b.colourID WHERE
a.orderID = 61
。 https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/Protocol.html
一个简单的例子:
cellForRow
Protocol
您的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 CellDelegate: class {
func cell(_ cell: Cell, textFieldDidEndDiting textField: UITextField)
}