Access to ViewController outlets from AppDelegate

Solution

As Rob suggested, the solution is to use NotificationCenter. A useful link to understand how it works: https://www.appypie.com/notification-center-how-to-swift

Anyway, here how I modified the code.
In ViewController:

class ViewController: NSViewController {

   @IBOutlet var label: NSTextFieldCell!

   let didReceiveData = Notification.Name("didReceiveData")

   override func viewDidLoad() {
      NotificationCenter.default.addObserver(self, selector: #selector(onDidReceiveData(_:)), name: didReceiveData, object: nil)
      super.viewDidLoad()
   }

   @objc func onDidReceiveData(_ notification: Notification) {
      label.textColor = NSColor.red
   }
}

And then, in AppDelegate:

let didReceiveData = Notification.Name("didReceiveData")
NotificationCenter.default.post(name:   didReceiveData, object: nil)