Window一直想成为别人的佼佼者

Window一直想成为别人的佼佼者

我的应用程序具有打开自动化器工作流程的按钮,如下所示:

- (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/

10-12 07:22