使用按钮将文本添加到UITableViewcell中包含的文本字段值中

时间:2019-02-18 20:20:57

标签: ios swift uitableview cocoa-touch uitextfield

我正在寻找一个UIButton来将其标题值添加到UITextField中包含的当前所选UITableViewCell中。

我有一排带有用户可能使用的常用短语的按钮,例如“ #CompanyName”。我将常用短语设置为按钮的标题。在按钮行的下面,我有一个UITableView,其中的每个单元格都包含几个静态标签和一个文本字段。我想允许用户按下表格视图上方的按钮之一,以将按钮的标题值添加到当前正在编辑的文本字段中。

我已经尝试使用文本字段和按钮将它们作为表格的测试来进行测试,

    @IBAction func buttonAction(_ sender: AnyObject) {
        buttonTitle = sender.titleLabel!.text!
        testOutlet.text = "\(testOutlet.text!) \(buttonTitle)"

现在我的问题是我如何使此“ testOutlet.text”动态化,以便它仅知道正在编辑的文本字段。我调查了textFieldDidBeginEditing,但无法弄清楚。我也尝试过定义indexPath。

1 个答案:

答案 0 :(得分:0)

您需要知道当前正在编辑哪个UITextField。为此,您可以使用以下代码:

class ViewController: UIViewController {
    // code ...

    @IBAction func buttonAction(_ sender: AnyObject) {
        buttonTitle = sender.titleLabel!.text!
        oActiveTextField?.text = "\(oActiveTextField?.text ?? "") \(buttonTitle)"
    }

    fileprivate var oActiveTextField: UITextField?
}

extension ViewController: UITableViewDataSource {
    // code ...

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: yourIdentifier, for: indexPath) as! YourTableViewCell
        cell.textField.delegate = self
        // TODO: configure cell
        return cell
    }
}

extension ViewController: UITextFieldDelegate {

    func textFieldDidBeginEditing(_ textField: UITextField) {
        oActiveTextField = textField
    }

    func textFieldDidEndEditing(_ textField: UITextField) {
        oActiveTextField = nil
    }

}