iOS - 无法访问 UITableViewCell 中的 UITextView 委托 class

iOS - Cannot access UITextView delegate inside a UITableViewCell class

在实例化的 UITableViewCell class.

中尝试访问 UITableViewDelegate 方法时,我发现了一些问题

我正在尝试访问 func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {} 并且函数没有触发,我想那是因为我在尝试设置委托时遇到了一些问题。

代码如下:

import UIKit
class TableViewCell: UITableViewCell, UITextViewDelegate {

    @IBOutlet var titleLabel: UILabel!
    @IBOutlet var textView: UITextView!
    @IBOutlet var postImageView: UIImageView!


    func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {
        print("link tapped")
        return true
    }

    init() {
        super.init()
        textView.delegate = self
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }


    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
    }
}

super.init() 行显示此错误

TableViewCell.swift - "Must call a designated initializer of the superclass" 'UITableViewCell'

关于如何通过此立交桥的任何提示?

提前致谢

最终编辑 我做了我真正想做的事。 我没有在 UITableViewCell Class 中使用 UITextFieldDelegate,而是将 UITextFieldDelegate 添加到使用单元格本身的 ViewController,并且在单元格配置上刚刚做了: cell.textView.degelate = Self ,然后我实现了委托函数 func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {}

感谢小伙伴们的回答。

给您带来麻烦的那行不是 textView.delegate = self,而是 super.init()。您需要使用 nibName 和 bundle 正确调用它。

init() {
    super.init(nibName: PutTheStringHere, bundle: PutTheBundleHere)
    textView.delegate = self
}
override func awakeFromNib() {
    super.awakeFromNib()
    textView.delegate = self
}

干得好