【问题标题】:Prevent save prompt when closing NSWindow关闭 NSWindow 时防止保存提示
【发布时间】:2012-08-17 16:50:14
【问题描述】:

我有一个基于文档的 Cocoa 应用程序,它使用辅助 NSWindow 进行预览模式(shouldCloseDocument 设置为 NO)。

如果文档很脏(已编辑但未保存)并且我关闭了辅助NSWindow,则会出现“是否要保存对文档所做的更改”提示。

如何在辅助NSWindow 上避免此提示?

【问题讨论】:

  • 如果在windowWillClose委托方法中将辅助窗口的文档设置为nil怎么办?
  • 有趣的想法,但不起作用。出现保存提示后调用windowWillClose
  • NSWindowDelegate 的 windowShouldClose 和 NSWindow 的 close 也是如此。

标签: macos cocoa nswindow nswindowcontroller document-based


【解决方案1】:

我找不到这样做的方法。我希望找到在保存提示之前调用的 NSWindowDelegateNSWindow 方法,但没有一个明显的候选方法(windowWillClosecloseperformClosewindowShouldClose)。

作为一种解决方法,我没有设置NSWindowController.document,而是使用自定义属性来传递文档。将document 设置为NIL,将不再显示保存提示。

【讨论】:

    【解决方案2】:

    具体来说,您可以在 viewController 子类中执行此操作: 确保将委托从窗口设置为所有者类:

    //-------------------------------------------------------
    - (void)windowControllerDidLoadNib:(NSWindowController *)aController
    {
    NSLog (@"windowControllerDidLoadNib");
        aController.document = nil;
        [super windowControllerDidLoadNib:aController];
    
    ............. etc.......
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2022-01-21
      • 1970-01-01
      相关资源
      最近更新 更多