【问题标题】:Handling delegate of UItextfield in UItableView处理 UItableView 中 UItextfield 的委托
【发布时间】:2016-12-10 03:00:59
【问题描述】:

我的 UItable 中的一个单元格中有一个 UItextfield,我希望从文本字段返回后可以执行几个步骤:

  1. 清除开头和结尾的空白(修剪空白)
  2. 辞去第一响应者(隐藏键盘)
  3. 设置单元格被选中
  4. 将字段的文本内容附加到 [String] 中

但到目前为止我只能执行其中的一部分,因为第 3 点在 TableViewCell 类中,但第 4 点在 TableViewController 中。 我试图为这两个类创建 UItextField 出口,但它不起作用 Text_NewName.delegate = self 或者我应该访问 UITableViewCell 类中的 [String] 吗?但是当我尝试将其作为子类时,迅速提示错误'从类中多重继承'

我相信我的知识一定有一些差距,使这些功能变得困难,如果有更简单的方法也可以让我知道。

代码如下:

class Namelist_ADDName_TVCell: UITableViewCell, UITextFieldDelegate {
override func awakeFromNib() {
    super.awakeFromNib()
    Text_NewName.delegate = self
}
@IBOutlet weak var Text_NewName: UITextField!

func textFieldShouldReturn(_ textField: UITextField) -> Bool {

    textField.text = textField.text?.trimmingCharacters(in: .whitespaces)
    textField.resignFirstResponder()

    if textField.text != "" {
        self.isSelected = true
        return true
    } else {
        self.isSelected = false
        return false
    }

}

另一个快速文件:

class PickNameTVC: UITableViewController, UITextFieldDelegate {

var selectedlist : [String]?

func textFieldShouldReturn(_ theTextfield: UITextField) -> Bool {

    if theTextfield.text != "" {
        selectedlist?.append(theTextfield.text!)
    }
    return true
}
}

【问题讨论】:

  • 您需要选择是让 UITableViewController 子类还是 UITableViewCell 子类作为文本字段的委托。在这种情况下,将 UITableViewController 用作文本字段的委托是有意义的,这样它就可以轻松完成所有四项任务。

标签: ios swift uitableview uitextfielddelegate


【解决方案1】:

管理PickNameTVC 上的所有内容。

在创建单元格时设置delegate override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 方法将您的委托设置为 cell.textField.delegate = self(其中 cell 是您在该方法中的出列单元格)。

【讨论】:

  • 我确实尝试在 picknameTVC 的 viewdidload 中设置文本字段委托,今晚将尝试在 cellforrow 中设置它。除了运行时间不同,它们之间有什么不同??
  • 感谢您和@josh Hamet 的建议,我在专注于仅委托给 Table View Controller 之后弄清楚了如何使其工作。 let index = IndexPath(row: (namelist?.count)!, section: 0) self.tableView.selectRow(at: index, animated: true, scrollPosition: .bottom)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
  • 2023-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多