如果 TextField 位于 TabelViewControler 的自定义单元格中,如何处理 shouldChangeCharactersIn
Posted
技术标签:
【中文标题】如果 TextField 位于 TabelViewControler 的自定义单元格中,如何处理 shouldChangeCharactersIn【英文标题】:how to handle shouldChangeCharactersIn for a TextField, if it is located in the Custom Cell in the TabelViewControler 【发布时间】:2018-02-28 16:54:09 【问题描述】:我无法理解。怎么做,试试这个:
class myViewCell: UITableViewCell, UITextFieldDelegate
@IBOutlet weak var myEdit: UITextField!
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
// don`t work ((
class myTableViewControler: UITableViewController
override func viewDidLoad()
super.viewDidLoad()
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "NamePhoneCell", for: indexPath) as! myViewCell
…
returns cell
我有一个想法 - 代表。但是如何,我需要委托 -shouldChangeCharactersIn 方法,UITableViewCell 本身从 UITextFieldDelegate 委托
【问题讨论】:
您是否已将 myEdit 的文本字段委托分配给单元格? 我想要,但是 UITebleViewCell 没有覆盖 viewDidLoad() 方法 是的,UITableViewCell 不会覆盖 viewDidLoad() 方法。您必须重写 awakeFromNib() 方法并在那里进行所有初始化,例如为文本字段设置委托。 【参考方案1】:您需要为您创建的 UITextField 设置委托。 myViewCell 将实现您的 UITextField 的委托功能。
class myViewCell: UITableViewCell, UITextFieldDelegate
@IBOutlet weak var myEdit: UITextField!
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
// don`t work ((
override func awakeFromNib()
super.awakeFromNib()
myEdit.delegate = self
【讨论】:
【参考方案2】:您没有将 UITextField 委托分配给 myViewCell
下一步加入myViewCell
类:
override func awakeFromNib()
super.awakeFromNib()
myEdit.delegate = self
【讨论】:
哦,哦,谢谢,我不明白如何,但它有效。希望以后能理解代表团。以上是关于如果 TextField 位于 TabelViewControler 的自定义单元格中,如何处理 shouldChangeCharactersIn的主要内容,如果未能解决你的问题,请参考以下文章
@State 错误我位于导航栏的 TextField - SwiftUI
在 Flutter 中对齐多行 TextField 中的提示文本
如何处理TextCield的shouldChangeCharactersIn,如果它位于TabelViewControler的Custom Cell中
关于 tabelviewcell 中 怎么让每个 cell 的 head view 随着 tabelviewhead 滚动