Как исправить метод не переопределяет любой метод из его ошибки суперкласса с UITextViewDelegate на Swift?
Я пытаюсь переопределить метод textView shouldInteractWithURL для обработки кликабельной ссылки. Поэтому я создал подкласс, унаследованный от UITextView и UITextViewDelegate, вызывающего MyTextView и ожидающего переопределения метода следующим кодом:
import UIKit
class MyTextView: UITextView, UITextViewDelegate {
override func textView(textView: UITextView!, shouldInteractWithURL URL: NSURL!, inRange characterRange: NSRange) -> Bool {
println(URL)
return false
}
}
Но я получил сообщение об ошибке: Метод не переопределяет любой метод из своего суперкласса.
Как это исправить? Благодарю.
1 ответ
Решение
Вы не должны создавать подкласс UITextView. Вы должны реализовать и добавить делегат вместо этого.
class MyViewController : UIViewController, UITextViewDelegate {
override func viewDidLoad() {
var textView = UITextView(frame: CGRectMake(0, 0, view.frame.width, view.frame.height))
textView.delegate = self
view.addSubview(textView)
}
// MARK: UITextViewDelegate
func textView(textView: UITextView!, shouldInteractWithURL URL: NSURL!, inRange characterRange: NSRange) -> Bool {
println(URL)
return false
}
}