如果 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的主要内容,如果未能解决你的问题,请参考以下文章

使用 RxSwift 的 TabelView 委托方法

如何将图像数组从 json 格式解析为 tabelview

@State 错误我位于导航栏的 TextField - SwiftUI

在 Flutter 中对齐多行 TextField 中的提示文本

如何处理TextCield的shouldChangeCharactersIn,如果它位于TabelViewControler的Custom Cell中

关于 tabelviewcell 中 怎么让每个 cell 的 head view 随着 tabelviewhead 滚动