Я обнаружил некоторые проблемы при попытке доступа к методам UITableViewDelegate
внутри экземпляра класса UITableViewCell
.
Я пытаюсь получить доступ к 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 в ViewController, который использует саму ячейку, и только что сделал в конфигурации ячейки: cell.textView.degelate = Self
, затем я реализовал функцию делегата func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {}
Спасибо за ответы мальчики.
super.init(style: UITableViewCellStyle.default, reuseIdentifier: "mainCell")
, будет показана требуемая фатальная ошибка init(). - person Ivan Cantarino   schedule 13.02.2017