Как исправить метод не переопределяет любой метод из его ошибки суперкласса с 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
    }
}
Другие вопросы по тегам