我正在使用下面的代碼來檢查應用程序是否正在運行並關閉它。有人可以提供一個如何申請一個應用程序的例子calose並等待它關閉之前繼續?如何等待應用程序在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 2012-04-01 19:02:42
我沒有一個方便的代碼示例,但我會使用['NSTimer'](https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nstimer_Class/Reference/ NSTimer.html)並設置一個重複計時器來調用你的一個方法。從那裏,您可以瞭解應用程序是否仍在運行,並繼續等待或取消計時器並繼續。 – 2012-04-01 19:08:35
感謝格雷格,我會試一試。 – David 2012-04-01 19:10:34