Réponse courte: Il est impossible.
Vous ne pouvez pas observer les notifications utilisateur envoyées par les applications, sauf si une application fournit une API spécifique. Par exemple, le dictionnaire AppleScript de iMessage et Mail contient des événements auxquels les scripts peuvent répondre. Cependant, les notifications des utilisateurs sont encapsulées dans l'application cible.
Il y a une classe mondiale de notification du nom DistributedNotificationCenter, un mécanisme d'envoi de notification permettant la diffusion des notifications à travers les frontières de la tâche. Certains processus envoient des notifications distribuées mais il s'agit d'une fonctionnalité complètement différente de UserNotification
. Par exemple, le processus du moteur TimeMachine backupd
envoie des notifications distribuées lors de l'exécution d'une sauvegarde.
Vous pouvez souscrire à toutes les notifications distribuées avec
DistributedNotificationCenter.default().addObserver(self, selector: #selector(handleNotifications(_:)), name: nil, object: nil)
mais je doute que iMessage envoie une notification distribué lorsqu'un message est reçu.