Krótka odpowiedź: To nie jest możliwe.
Nie można obserwować powiadomień użytkownika wysyłanych przez aplikacje, chyba że aplikacja udostępnia określony interfejs API. Na przykład słownik AppleScript iMessage i Mail zawiera skrypty zdarzeń, na które można odpowiedzieć. Jednak powiadomienia użytkownika są umieszczane w docelowej aplikacji.
Jest to globalna klasa powiadomienie o nazwie DistributedNotificationCenter, powiadomienie mechanizm wysyłkowy, który umożliwia transmisję powiadomień ponad granicami zadaniowych. Niektóre procesy wysyłają powiadomienia rozproszone, ale jest to zupełnie inna funkcja niż UserNotification
. Na przykład proces silnika TimeMachine backupd
wysyła powiadomienia rozproszone podczas wykonywania kopii zapasowej.
Możesz zapisać się do wszystkich rozproszonych powiadomień z
DistributedNotificationCenter.default().addObserver(self, selector: #selector(handleNotifications(_:)), name: nil, object: nil)
ale wątpię, że iMessage wysyła rozproszoną powiadomienie o odebraniu wiadomości.