如何修复方法没有覆盖任何方法从它的超类错误与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
    }
}

但是我得到了一个错误消息:方法没有覆盖它的超类中的任何方法。

如何解决这个问题?谢谢。

你不应该子类化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
    }
}

最新更新