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 回答