在自定义单元格中编辑 UITextView 时调用文本视图开始编辑



当我的 ViewController 中编辑文本视图时,我似乎无法调用我的 textViewDidBeginEditing 函数。

这是我的自定义单元格的代码:

class NoteDetailCell: UITableViewCell {
    let noteText: UITextView = {
        let label = UITextView()
        label.font = UIFont(name: "Nunito",size: 16)
        label.backgroundColor = UIColor(r: 244, g: 244, b: 255)
        label.text = "Have to check out this food place. The best burgers in town."
        label.textColor = UIColor(r: 88, g: 88, b: 88)
        label.translatesAutoresizingMaskIntoConstraints = false
        return label
    }()
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: .`default`, reuseIdentifier: reuseIdentifier)
        self.selectionStyle = UITableViewCellSelectionStyle.none
        addSubview(noteText)
        noteText.topAnchor.constraint(equalTo: self.topAnchor, constant: 10).isActive = true
        noteText.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 8).isActive = true
        noteText.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -8).isActive = true
    }
}

这是我的表视图代码:

class TripNoteViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextViewDelegate {
    var noteDetails: UITableView = UITableView()
    override func viewDidLoad() {
        super.viewDidLoad()
        noteDetails.frame = CGRect(x: 0, y: 65, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height-140)
        noteDetails.delegate = self
        noteDetails.dataSource = self
        noteDetails.separatorColor = UIColor.clear
        noteDetails.register(NoteDetailCell.self, forCellReuseIdentifier: "detailsCell")
        noteDetails.register(NoteOriginCell.self, forCellReuseIdentifier: "visitTrip")
        noteDetails.register(NoteActionsCell.self, forCellReuseIdentifier: "noteActions")
    }
    func textViewDidBeginEditing(noteText: UITextView) {
        print("noteText text")
    }
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 3
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: detailsCell) as! NoteDetailCell
        cell.noteText.isScrollEnabled = false
        cell.noteText.delegate = self
        return cell
    }
}

我想在编辑自定义单元格中的文本字段时从我的视图控制器调用textViewDidBeginEditing函数。关于我做错了什么的任何建议?

您尚未实现UITextViewDelegate协议定义的方法。改变:

func textViewDidBeginEditing(noteText: UITextView) {
    print("noteText text")
}

自:

func textViewDidBeginEditing(_ noteText: UITextView) {
    print("noteText text")
}

由于您的签名错误,因此不会调用它。

最新更新