Я использую следующий код, чтобы проверить, запущено ли приложение и закрыть его. Может ли кто-нибудь представить пример того, как запросить приложение, и ждать, пока он закроется, прежде чем продолжить?Как вы ожидаете закрытия приложения в OS X?
+ (BOOL)isApplicationRunningWithName:(NSString *)applicationName {
BOOL isAppActive = NO;
NSDictionary *aDictionary;
NSArray *selectedApps = [[NSWorkspace sharedWorkspace] runningApplications];
for (aDictionary in selectedApps) {
if ([[aDictionary valueForKey:@"NSApplicationName"] isEqualToString: applicationName]) {
isAppActive = YES;
break;
}
}
return isAppActive;
}
+ (void)stopApplication:(NSString *)pathToApplication {
NSString *appPath = [[NSWorkspace sharedWorkspace] fullPathForApplication:pathToApplication];
NSString *identifier = [[NSBundle bundleWithPath:appPath] bundleIdentifier];
NSArray *selectedApps = [NSRunningApplication runningApplicationsWithBundleIdentifier:identifier];
// quit all
[selectedApps makeObjectsPerformSelector:@selector(terminate)];
}
ли у вас есть пример кода, который может показать, как я это выполнил? – David
У меня нет примера кода, но я бы использовал ['NSTimer'] (https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nstimer_Class/Reference/ NSTimer.html) и настройте повторяющийся таймер, чтобы вызвать один из ваших методов. Оттуда вы можете узнать, продолжает ли выполняться приложение, и продолжать либо ждать, либо отменить таймер и продолжить. –
Спасибо, Грег, я попробую. – David