我需要一点帮助,我现在有一个方法;我的Mac OS X应用程序中的updateTrackInfo获取当前在iTunes中播放的艺术家名称,曲目名称和曲目的持续时间
但是我想让应用程序监听分发的iTunes通知; com.apple.iTunes.playerInfo 然后在iTunes分发通知时调用方法updateTrackInfo。请有人帮助我,我需要在标题和实现文件中写下什么。
谢谢,萨米。
答案 0 :(得分:13)
您正在寻找-[NSDistributedNotificationCenter addObserver:selector:name:object:]
:
NSDistributedNotificationCenter *dnc = [NSDistributedNotificationCenter defaultCenter];
[dnc addObserver:self selector:@selector(updateTrackInfo:) name:@"com.apple.iTunes.playerInfo" object:nil];
在同一个班级的其他地方......
- (void) updateTrackInfo:(NSNotification *)notification {
NSDictionary *information = [notification userInfo];
NSLog(@"track information: %@", information);
}
它甚至会在通知中为您提供一大堆跟踪信息。不是很好吗?
答案 1 :(得分:3)
感谢您的帮助,您帮我纠正了我的代码,我写了这篇文章:
- (id) init {
self = [super init];
if (!self) return nil;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveNotification:)
name:@"com.apple.iTunes.playerInfo"
object:nil];
return self;}
- (void) receiveNotification:(NSNotification *) notification {
if ([@"com.apple.iTunes.playerInfo" isEqualToString:@"com.apple.iTunes.playerInfo"]) {
NSLog (@"Successfully received the test notification!");
}}
但它使用NSNotificationCenter而不是NSDistributedNotificationCenter。哪个是我出错的地方。
谢谢,萨米。