0

ファイルの保存で問題が発生した場合は、上書きプロンプトのように、保存シートの上にエラー警告をシートとして表示したいと思います。ただし、完了ブロックが完了するとすぐに保存パネルが閉じ、エラー アラートが表示されます。

[panel beginSheetModalForWindow:window
              completionHandler:^(NSInteger result) {
                  if (result == NSFileHandlingPanelOKButton) {
                      NSError *error;
                      // Do my saving here...
                      if (error)
                          [[NSAlert alertWithError:error] beginSheetModalForWindow:panel
                                                                     modalDelegate:nil
                                                                    didEndSelector:nil
                                                                       contextInfo:nil];
                  }
              }];

完了ブロック内から NSSavePanel を非表示にすることをキャンセルできますか? 代表から?何かから?

4

1 に答える 1

2

TextEdit をチェックインしたところ、保存の確認ではなく、保存の失敗が発生した場合の動作は次のとおりです。

  1. [保存] パネルがロールアップされます。
  2. アプリが保存しようとして失敗します。(あなたのブロック。)
  3. アプリはドキュメント ウィンドウにエラー シートを表示し、[保存] パネルはとうの昔になくなっています。

TextEdit のエラー シートのスクリーンショット

したがって、Apple のような動作が必要な場合は、ドキュメント ウィンドウにアラート シートを表示します。

ちなみに、あなたは に興味があるかもしれませんpresentError:modalForWindow:delegate:didPresentSelector:contextInfo:

于 2013-03-02T02:41:21.423 に答える