Objective c 如何阻止NSSavePanel在完成块后关闭?

Objective c 如何阻止NSSavePanel在完成块后关闭?,objective-c,macos,cocoa,nssavepanel,Objective C,Macos,Cocoa,Nssavepanel,如果保存文件时出错,我希望在保存工作表上以工作表的形式显示错误警报,就像覆盖提示一样。但是,完成块完成后,“保存”面板将立即关闭,并附带错误警报 [panel beginSheetModalForWindow:window completionHandler:^(NSInteger result) { if (result == NSFileHandlingPanelOKButton) {

如果保存文件时出错,我希望在保存工作表上以工作表的形式显示错误警报,就像覆盖提示一样。但是,完成块完成后,“保存”面板将立即关闭,并附带错误警报

[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吗?来自一名代表?从任何地方开始?

我刚刚签入了TextEdit,如果您没有确认保存,它会做什么,但保存失败如下:

  • 保存面板向上滚动
  • 应用程序尝试保存,但失败。(你的街区。)
  • 应用程序在文档窗口中显示错误表,保存面板早已消失
  • 因此,如果你想要苹果式的行为,在文档窗口中显示你的警告单

    顺便说一句,您可能对演示者感兴趣。错误:modalForWindow:delegate:didPresentSelector:contextInfo: