我的应用程序具有打开自动化器工作流程的按钮,如下所示:
- (IBAction)actionname:(id)sender {
NSTaskname = [[NSTask alloc] init];
[NSTaskname setLaunchPath:@"/usr/bin/automator"];
NSArray *arguments;
arguments = [NSArray arrayWithObjects:@"/Applications/appname.app/Contents/Resources/workflowname.workflow", nil];
[NSTaskname setArguments:arguments];
[NSTaskname launch];
}
唯一的问题是,每个人都出现在我的应用程序窗口的后面。同样,一个工作流程将启动另一个应用程序,该应用程序也将显示在窗口的后面。
我怎样才能解决这个问题?
最佳答案
您可能可以使用NSRunningApplication将NSTask进程及其PID置于最前面,如下所示...
NSRunningApplication* app = [NSRunningApplication runningApplicationWithProcessIdentifier:[NSTaskname processIdentifier]];
[app activateWithOptions: NSApplicationActivateAllWindows];
而且,如果您需要激活特定的应用程序(例如,启动另一个应用程序的工作流),则可以使用该应用程序的捆绑标识符来执行此操作。此示例将激活Safari。
NSArray* apps = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.apple.Safari"];
[(NSRunningApplication*)[apps objectAtIndex:0] activateWithOptions: NSApplicationActivateAllWindows];
关于objective-c - Window一直想成为别人的佼佼者-Xcode,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14177986/