【发布时间】:2015-05-02 08:19:16
【问题描述】:
我想在某个应用程序触发事件时收到通知。我不是 Objective-C 开发人员,也不了解 OS X API——所以我希望这个问题不是太基础。
我的目标是将当前播放歌曲的元信息写入日志文件。对于 iTunes,我使用以下 Objective-C 行来实现这一点:
[[NSDistributedNotificationCenter defaultCenter]
addObserver: myObserver selector: @selector(observeNotification:)
name: @"com.apple.iTunes.playerInfo" object:nil];
但是,我也需要这个用于 AirServer(它是一个软件 AirPlay 接收器)。不幸的是,以下内容不起作用——观察者永远不会被调用:
[[NSDistributedNotificationCenter defaultCenter]
addObserver: myObserver selector: @selector(observeNotification:)
name: @"com.pratikkumar.airserver-mac" object:nil];
显然,AirServer 不会发送这些类型的通知。但是,当新歌曲开始播放时,通知中心会有通知。
我的下一步是定期检查 OS X 通知中心中的新通知(如此处所述:https://stackoverflow.com/a/25930769/1387396)。不过这并不太干净——所以我的问题是:在这种特殊情况下还有其他选择吗?
【问题讨论】:
标签: objective-c macos cocoa foundation airserver