处理 UItableView 中 UItextfield 的委托
Posted
技术标签:
【中文标题】处理 UItableView 中 UItextfield 的委托【英文标题】:Handling delegate of UItextfield in UItableView 【发布时间】:2016-12-10 03:00:59 【问题描述】:我的 UItable 中的一个单元格中有一个 UItextfield,我希望从文本字段返回后可以执行几个步骤:
-
清除开头和结尾的空白(修剪空白)
辞去第一响应者(隐藏键盘)
设置单元格被选中
将字段的文本内容附加到 [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 用作文本字段的委托是有意义的,这样它就可以轻松完成所有四项任务。 【参考方案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)以上是关于处理 UItableView 中 UItextfield 的委托的主要内容,如果未能解决你的问题,请参考以下文章
需要在 Swift 中的 UITextField 委托方法中引用自定义 UITableViewCell 而不使用 tag 属性
在一个 UIViewController 中处理多个 UITableView 的最佳方法?
如何在动态 UITableView (iPhone) 中处理对 UITextFields 的引用
处理 UItableView 中 UItextfield 的委托