iOS - 无法在UITableViewCell类中访问UITextView委托
在实例化的UITableViewCell
类中尝试访问UITableViewDelegate
方法时发现一些问题。iOS - 无法在UITableViewCell类中访问UITextView委托
我试图访问 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 - “必须调用父类的指定初始化” '的UITableViewCell'
任何提示如何超越这个?
在此先感谢
最后编辑 我已经做了我真正想做的事。 而不是使用UITextFieldDelegate的UITableViewCell类,里面的,我已经添加了UITextFieldDelegate到使用细胞本身的视图控制器,并在电池配置只是做: cell.textView.degelate = Self
,然后我实现的 func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {}
谢谢你回答男孩。
override func awakeFromNib() {
super.awakeFromNib()
textView.delegate = self
}
尼斯工作
欢迎来到StackOverflow!虽然答案总是值得赞赏的,但请提供一些关于答案的上下文,并参阅[帮助文章](http://stackoverflow.com/help/how-to-answer)以获取有关如何编写出色答案的信息。 –
奇怪的是,这工作,但我发誓,我已经尝试过,并有编译错误:/ 谢谢反正m8 –
给你麻烦的线不是textView.delegate = self
而是super.init()
。你需要用nibName和bundle正确调用它。
init() {
super.init(nibName: PutTheStringHere, bundle: PutTheBundleHere)
textView.delegate = self
}
我和便利的init(),它没有工作 –
我不认为super.init()已经尝试过是指定的初始化。尝试其他人之一。我认为可能有一个super.init(nib:,bundle :)或类似的东西。 – Erik
如果我尝试'super.init(style:UITableViewCellStyle.default,reuseIdentifier:“mainCell”)'initialiser,将显示所需的init()致命错误。 –