如何在Swift中不断更新ULabel的文本

How to constantly update the text of ULabel in Swift

概览 我正在构建一个简单的项目,其中有一个 textView 和一个标签。我希望每次用户从 textView 复制一个单词并显示它时,标签内容都会发生变化。 目前我无法自动执行此操作。

我在做什么

class ViewController: UIViewController {
    
    @IBOutlet weak var textView: UITextView!
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var refresh: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        label.text = UIPasteboard.general.string
        
        refresh.addTarget(self, action: #selector(displayNew), for: .touchUpInside)
    }
    
    @objc func displayNew(){
        label.text = UIPasteboard.general.string
    }
}

因此,只要用户按下刷新按钮,标签的文本就会刷新。现在我需要它自动发生。

问题
ypu 如何在用户复制内容时自动刷新标签的文本?

添加监听器

NotificationCenter.default.addObserver(self, selector: #selector(clipChange),
                                           name: UIPasteboard.changedNotification, object: nil)

@objc func clipChange(){
    label.text = UIPasteboard.general.string 
}