iTunes用のプラグインのようなものを開発しています。
多くのユーザーから、iTunes を起動するときにプラグインを起動したいというリクエストがありましたが、これは当然のことです。しかし、これを行う方法がわかりません。
おそらく唯一の方法であるヘルパーアプリについて考えました。ただ気になるのは、通知の受け取り方です。もちろん、iTunes が実行されているかどうかを一貫して確認することはできましたが、それが正しい方法であるかどうかはわかりません。
そのプロセスのオブザーバーとして自分のアプリを追加したいと思います。それは可能ですか?
そうでない場合、アクティビティモニターはどのようにそれを行いますか?
解決
ダイジャンに感謝!私はそれを次のように動作させました:
- (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");
}