如何处理TextCield的shouldChangeCharactersIn,如果它位于TabelViewControler的Custom Cell中

时间:2018-02-28 16:54:09

标签: ios swift uitableview uitextfield

我无法理解。怎么做,试过这个:

class myViewCell: UITableViewCell, UITextFieldDelegate {
        @IBOutlet weak var myEdit: UITextField!
        func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
            // don`t work ((
        }
    }

class myTableViewControler: UITableViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "NamePhoneCell", for: indexPath) as! myViewCell
            …
        returns cell
    }
}

我有个主意 - Delegete。但是,如何,我需要委托-shouldChangeCharactersIn方法,UITableViewCell本身从UITextFieldDelegate委托

2 个答案:

答案 0 :(得分:0)

您没有将UITextField委托分配给myViewCell

下一步加入myViewCell课程:

override func awakeFromNib() {
    super.awakeFromNib()
    myEdit.delegate = self
}

答案 1 :(得分:0)

您需要为您创建的UITextField设置委托。 myViewCell将实现UITextField的委托功能。

class myViewCell: UITableViewCell, UITextFieldDelegate {
        @IBOutlet weak var myEdit: UITextField!
        func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
            // don`t work ((
        }
    }


override func awakeFromNib() {
    super.awakeFromNib()
    myEdit.delegate = self
}