运行 另一个 textViewDidChange

Run another textViewDidChange

如果我 运行 UITextView 扩展中的 textViewDidChange 函数,我不能在其他 类.

中使用 textViewDidChange

请告诉我解决方法。

就是代码如下。 (已简化。)

extension UITextView: UITextViewDelegate {
    initValue(){
        //Start this method at first.
        self.delegate = self
    }

    //1. If already set this method in this extension
    public func textViewDidChange(_ textView: UITextView) {
        print("Do something!!")
    }
}


class A: UITextViewDelegate{
    @IBOutlet weak var textView: UITextView!

    func initValue(){
        textView.delegate = self
    }

    //2. This method don't move
    func textViewDidChange(_ textView: UITextView) {
        print("Nein!! wan can't do anything!!")
    }
}

Define the method with a closure like this :

func textViewDidChange(_ textView: UITextView, _  completion: (() -> Swift.Void)? = nil){
    completion?()
    return
}

Subscribe to the notifications in your viewDidLoad() like :

textField.addTarget(self, action: #selector(doChanges(_:)), for: .editingChanged)

And add the function to that viewController that lets you do stuff on completion

@objc func doChanges() {
    textFieldDidChange(self.textField) { 
        //doCustomWorkHere
    }
}