【问题标题】:How to disable NSDocument's window title popup如何禁用 NSDocument 的窗口标题弹出
【发布时间】:2014-05-06 12:14:52
【问题描述】:

我有一个启用了自动保存的基于 NSDocument 的应用程序。

我想阻止显示此弹出窗口:

我尝试从 NSWindow 的 –title、–representedFilename 和 –representedURL 返回 nil,它们隐藏了标题,有效地隐藏了标题,但对向下的披露指示器和弹出窗口没有影响。

有什么方法可以防止出现此弹出窗口吗?

【问题讨论】:

    标签: cocoa nswindow nsdocument


    【解决方案1】:

    我能够通过覆盖 NSWindow 来阻止按钮显示

    + (NSButton *)standardWindowButton:(NSWindowButton)windowButtonKind forStyleMask:(NSUInteger)windowStyle

    并为 NSWindowDocumentVersionsButton 返回 nil

    【讨论】:

    • 您需要在 NSWindow 子类中覆盖它,而不是在 NSWindowController 子类中!不要犯和我一样的错误(:
    • 这也会禁用 x、最小化、放大按钮,对吗?我的应用因此被拒绝了。
    • 你应该只为 NSWindowDocumentVersionsButton 返回 nil。如果每个按钮都返回 nil,则不会显示任何按钮。
    【解决方案2】:

    从 NSDocument 的 autosavesInPlace() 覆盖返回 false

    【讨论】:

    • 问题的第一行提到启用了自动保存。禁用某项功能以避免显示按钮不是正确答案。
    【解决方案3】:

    您还可以使用简化的工具栏 (wwdc2016)

      override func viewWillAppear() {
            super.viewWillAppear()
    
            self.view.window!.titleVisibility = .hidden  
      }
    

    这也会删除标题栏(但不是选项卡式窗口的标题栏)

    【讨论】:

      猜你喜欢
      • 2016-12-17
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多