使用 Button 将文本添加到包含在 UITableViewcell 中的文本字段值
Using a Button to add text to a text field value that is contained within a UITableViewcell
我正在寻找 UIButton
以将其标题值添加到 UITableViewCell
中包含的当前选定 UITextField
。
我有一排按钮,其中包含用户可能使用的常用短语,例如“#CompanyName”。我将常用短语设置为按钮的标题。在按钮行的正下方,我有一个 UITableView
,每个单元格都包含几个静态标签和一个文本字段。我想让用户按下 table 视图上方的按钮之一,将按钮的标题值添加到当前正在编辑的文本字段中。
我已经成功地使用文本字段和按钮都在 table 视图之外进行了测试,使用:
@IBAction func buttonAction(_ sender: AnyObject) {
buttonTitle = sender.titleLabel!.text!
testOutlet.text = "\(testOutlet.text!) \(buttonTitle)"
现在我的问题是如何使这个 "testOutlet.text" 动态,以便它只知道正在编辑的文本字段。我调查了 textFieldDidBeginEditing
但无法弄清楚。我也尝试过定义 indexPath。
您需要知道当前正在编辑哪个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
}
}
我正在寻找 UIButton
以将其标题值添加到 UITableViewCell
中包含的当前选定 UITextField
。
我有一排按钮,其中包含用户可能使用的常用短语,例如“#CompanyName”。我将常用短语设置为按钮的标题。在按钮行的正下方,我有一个 UITableView
,每个单元格都包含几个静态标签和一个文本字段。我想让用户按下 table 视图上方的按钮之一,将按钮的标题值添加到当前正在编辑的文本字段中。
我已经成功地使用文本字段和按钮都在 table 视图之外进行了测试,使用:
@IBAction func buttonAction(_ sender: AnyObject) {
buttonTitle = sender.titleLabel!.text!
testOutlet.text = "\(testOutlet.text!) \(buttonTitle)"
现在我的问题是如何使这个 "testOutlet.text" 动态,以便它只知道正在编辑的文本字段。我调查了 textFieldDidBeginEditing
但无法弄清楚。我也尝试过定义 indexPath。
您需要知道当前正在编辑哪个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
}
}