本文介绍了如何调用 UITableViewCell 内部的 textField (swift)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 UITableViewCell 中有一个 UITextField:

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
}

如何将相同的 textField 传递给:

How can pass that same textField to:

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 函数.

I assume it connects the view to the view controller, allowing it to see the textFieldDidStopEditing function.

推荐答案

你需要在 cellForRowAtIndexPath 方法中给 UITextFieldDelegate 自己

you need to give UITextFieldDelegate in cellForRowAtIndexPath Method itself

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

}

这篇关于如何调用 UITableViewCell 内部的 textField (swift)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-16 05:04