applicationDidFinishLaunchingでいかを実行すればよい。
- (void)deduplicateRunningInstances { if ([[NSRunningApplication runningApplicationsWithBundleIdentifier:[[NSBundle mainBundle] bundleIdentifier]] count] > 1) { [[NSAlert alertWithMessageText:[NSString stringWithFormat:@"Another copy of %@ is already running.", [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleNameKey]] defaultButton:nil alternateButton:nil otherButton:nil informativeTextWithFormat:@"This copy will now quit."] runModal]; [NSApp terminate:nil]; } }
参考:osx - How to detect whether an OS X application is already launched - Stack Overflow