The best way? I have no idea… This is what I do, and it works.
I store the path to my helper app in 'path', and do the following when my app
is about to quit:
//---------------------------------------------------------------------
- (void)applicationWillTerminate:(NSNotification *)aNotification
//---------------------------------------------------------------------
{
[super applicationWillTerminate:aNotification];
AppleEvent tAppleEvent, tReply;
AEBuildError tAEBuildError;
ProcessSerialNumber currentProcessPSN;
NSNumber *psnHi = nil;
NSNumber *psnLo = nil;
NSArray * runningApps = [[NSWorkspace sharedWorkspace]
launchedApplications];
for(NSDictionary * appInfo in runningApps){
if( [path isEqualToString:[appInfo
objectForKey:@"NSApplicationPath"]] ){
psnHi = [appInfo
objectForKey:@"NSApplicationProcessSerialNumberHigh"];
psnLo = [appInfo
objectForKey:@"NSApplicationProcessSerialNumberLow"];
break;
}
}
if(psnHi == nil) return;
currentProcessPSN.highLongOfPSN = [psnHi unsignedIntegerValue];
currentProcessPSN.lowLongOfPSN = [psnLo unsignedIntegerValue];
OSStatus result = AEBuildAppleEvent( kCoreEventClass,
kAEQuitApplication, typeProcessSerialNumber, ¤tProcessPSN,
sizeof(ProcessSerialNumber), kAutoGenerateReturnID, kAnyTransactionID,
&tAppleEvent, &tAEBuildError,"");
result = AESend( &tAppleEvent, &tReply, kAEAlwaysInteract+kAENoReply,
kAENormalPriority, kNoTimeOut, nil, nil );
}
--Rob
On Jul 12, 2012, at 12:33 PM, Jerry Krinock <[email protected]> wrote:
> What is the best way to make a helper app quit when the associated main app
> quits (or crashes)? No harm will be done if it keeps running for a minute or
> so.
>
> Thanks,
>
> Jerry Krinock
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]