许多用户已经请求,如果他们启动iTunes,他们想要启动插件,这当然是有意义的.但是,我不知道该怎么做.
我想到了一个帮助应用程序,这可能是唯一的方法.
唯一困扰我的是如何获得通知.
当然,我可以不断检查iTunes是否正在运行,但我不确定这是否是正确的方法.
我宁愿添加我的应用程序作为该过程的观察者.
那可能吗?
如果没有,Activity Monitor如何做到这一点?
解
感谢Daij-Djan!我得到它像这样工作:
- (voID)applicationDIDFinishLaunching:(NSNotification *)aNotification{ [[[NSWorkspace shareDWorkspace] notificationCenter] addobserver:self selector:@selector(iTunesLaunched:) name:NSWorkspaceDIDLaunchApplicationNotification object:nil]; [[[NSWorkspace shareDWorkspace] notificationCenter] addobserver:self selector:@selector(iTunesTerminated:) name:NSWorkspaceDIDTerminateApplicationNotification object:nil];}-(voID) iTunesLaunched:(NSNotification *)notification { NSRunningApplication *runApp = [[notification userInfo] valueForKey:@"NSWorkspaceApplicationKey"]; if ([runApp.bundleIDentifIEr isEqualToString:@"com.apple.iTunes"]) NSLog(@"start");}-(voID) iTunesTerminated:(NSNotification *)notification { NSRunningApplication *runApp = [[notification userInfo] valueForKey:@"NSWorkspaceApplicationKey"]; if ([runApp.bundleIDentifIEr isEqualToString:@"com.apple.iTunes"]) NSLog(@"terminate");}解决方法 注册NSWorkspace通知:
NSWorkspaceDIDLaunchApplicationNotification
NSWorkspaceDIDTerminateApplicationNotification
见https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWorkspace_Class/Reference/Reference.html
KVO还有可能运行runningApplications属性btw cocoatech有一个很好的NTRunningAppManager类就可以做到这一点
总结以上是内存溢出为你收集整理的objective-c – 在Cocoa中添加进程的观察者全部内容,希望文章能够帮你解决objective-c – 在Cocoa中添加进程的观察者所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)