我有一个表格视图。我正在动态地创建UITextField
。
但我无法解雇其中的事件。
func tableView(_ tableView: UITableView, cellForRowAt indexPath:IndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCell(withIdentifier: "cell",for: indexPath) as! DynamicTableCell
var dynamicTxtField1: UITextField = UITextField()
dynamicTxtField1.backgroundColor = UIColor.white
dynamicTxtField1.rightViewMode = .always
dynamicTxtField1.layer.cornerRadius = 5;
dynamicTxtField1.clipsToBounds = true
dynamicTxtField1.borderStyle = .roundedRect
// Here i am not able to assign the
//Error in this line // dynamicTxtField1.delegate = self
// Here object "self" is referring to the view. Because of this i am not able to fire any events of the UITextField
cell.addSubview(dynamicTxtField1)
}
请在此方案中建议如何将委托分配给UITextField,以便我可以触发事件以显示视图以从中选择一些值。
错误是:
“无法将ViewName(classname)的值赋给UITextFieldDelegate”
就行:
dynamicTxtField1.delegate = self
答案 0 :(得分:0)
wblcdf
您应该在单元格的子类中创建textField
,然后在cellForRowAtIndexPath
中修改其属性。您的班级是否实施了UITextFieldDelegate
?
编辑:试试这个
textField.addTarget(self, action: #selector(ViewController.textfieldDidchange(_:)), forControlEvents: .ValueChanged)
cell.contentView.addSubview(textField)
这是方法
func textfieldDidchange(textField: UITextField) {
//your code
}