1

Cocoa アプリで「open」コマンドの「--fresh」オプションの動作を再現しようとしています。このオプションは、「ウィンドウを復元せずに、アプリを新たに起動します。」

Xcode を起動するサンプル アプリを作成しましたが、このコントロールを公開する API がわかりません。

NSURL *executableURL = [[NSWorkspace sharedWorkspace] URLForApplicationWithBundleIdentifier:@"com.apple.dt.Xcode"];
NSError *error = nil;
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:executableURL
                                              options:NSWorkspaceLaunchDefault
                                        configuration:nil
                                                error:&error];
if (error) {
    NSLog(@"Error launching Xcode: %@", error);
}

NSWorkspaceLaunchOptions のリストを見ると、状態の復元に影響を与えることを示唆するものは何も見つかりません。引数の受け渡し、環境の変更、起動したアプリへの Apple イベントの受け渡しなど、使用できる構成オプションはごくわずかです。

Apple イベントを使用して状態の復元を防ぐことはできますか?

4

1 に答える 1

1

アプリケーションの状態は ~/Library/Saved Application State に保存されます。Xcode の状態は、com.apple.dt.Xcode.savedState という名前のサブフォルダーにあります。1 つのオプションは、起動前にこのフォルダーの名前を変更してから、名前を元に戻すことです。議論によるより良い方法かもしれませんが、普遍的な議論があるとは思いません。

于 2013-04-06T14:02:36.823 に答える