无法将委托分配给UITextField,因为它在Tableview中

时间:2016-09-13 17:30:30

标签: ios swift uitableview uitextfield

我有一个表格视图。我正在动态地创建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

1 个答案:

答案 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

}