Как вызвать textField, который находится внутри UITableViewCell (swift) - PullRequest
0 голосов
/ 15 мая 2018

У меня есть UITextField, который находится внутри UITableViewCell:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TextFieldTableViewCell
    let textField: UITextField = cell.textField
    let detail = self.detailItem

    textField.text = detail!.valueForKey("name")!.description + detail!.valueForKey("number")!.description
    print()
    return cell
}

Как передать тот же текстовое поле на:

func textFieldDidBeginEditing(textField: UITextField) {
    print("executed")

    let detail = self.detailItem
    let textField: UITextField = self.text.textField
    if (textField.text != detail!.valueForKey("name")!.description + detail!.valueForKey("number")!.description) {
        detail?.setValue(textField.text, forKey: "name")
    }
}

решаемые

Мне нужно было добавить textField.delegate = self после его определения.

Я предполагаю, что он соединяет вид с контроллером вида, позволяя ему видеть функцию textFieldDidStopEditing.

1 Ответ

0 голосов
/ 15 мая 2018

вам нужно дать UITextFieldDelegate в самом методе cellForRowAtIndexPath

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TextFieldTableViewCell
    let textField: UITextField = cell.textField

    textField.delegate = self

    let detail = self.detailItem

    textField.text = detail!.valueForKey("name")!.description + detail!.valueForKey("number")!.description

    return cell

}
...