订阅(或列出)所有应用程序分发的通知

Subscribe (or list) all of an applications distributed notifications

我需要 iTunes 和 Spotify 发布的所有分布式通知的列表。我似乎无法在 SO 或 Google 上找到这样的东西,所以我想看看我是否可以订阅所有通知并记下触发的通知。我已经成功订阅了一个,但我无法订阅所有。

// Works just fine
NSDistributedNotificationCenter *center = [NSDistributedNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(itunesNotification)
               name:@"com.apple.iTunes.playerInfo" object:nil];
[center addObserver:self selector:@selector(spotifyNotification)
               name:@"com.spotify.client.PlaybackStateChanged" object:nil];

// Doesn't work :(
[center addObserver:self selector:@selector(itunesNotification)
               name:@"com.apple.iTunes" object:nil];
[center addObserver:self selector:@selector(itunesNotification)
               name:@"com.apple.iTunes.*" object:nil];
// Same result with com.spotify.client and .*

同样,如果我可以得到所有 iTunes/Spotify 通知的列表,那也可以。我的目的不是最后订阅所有通知,而是查看那里有什么并选择一些。希望说得通,非常感谢!

我想通了!您可以通过提供 nil 作为名称来观察 Mac 上所有分发的通知。

NSDistributedNotificationCenter *center = [NSDistributedNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(allNotifications:) name:nil object:nil];