objective-c - 如何隐藏 NSDocument 窗口标题栏中的文件图标

标签 objective-c cocoa

有谁知道如何隐藏基于文档的应用程序窗口标题栏中的小图标?

NSWindow 的文档说:

To customize the document icon, you can use the following code segment:

[[window standardWindowButton:NSWindowDocumentIconButton] setImage:nil];

但这不起作用,因为 window:stardardWindowButton:NSWindowDocumentIconButton 返回 nil,根据文档,这意味着该按钮不在窗口的 View 层次结构中。

我查看了 NSDocument,但这似乎没有在任何地方引用该图标。

我也尝试了 How to show a title of document window without icon? 中的所有答案,但它们不起作用。我猜小牛队发生了一些变化。

最佳答案

另一种方法是重写 NSWindowstandardWindowButton:forStyleMask: 类函数,并为要删除的按钮返回 nil:

class Window: NSWindow {

    class var undesiredButtons: [NSWindowButton] { 
        return [.DocumentIconButton, .DocumentVersionsButton]
    }

    override class func standardWindowButton(button: NSWindowButton, forStyleMask: Int) -> NSButton? {
        if contains(undesiredButtons, button) { return nil }
        return super.standardWindowButton(button, forStyleMask: forStyleMask)
    }
}

关于objective-c - 如何隐藏 NSDocument 窗口标题栏中的文件图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25372521/

相关文章:

objective-c - cocoa 坐标和碳坐标之间的转换?

objective-c - 调用从 ObjC 获取 bool(而不是 BOOL)的 C 函数

objective-c - 在 Xcode 中创建 "Quick Help"条目

ios - Amazon S3 使用 Objective C 重命名对象

iphone - 显示录音的声波

cocoa - 如何将崩溃报告的电子邮件地址重定向到我的电子邮件(对于我的 cocoa 应用程序)

cocoa - 使用 Cocoa 填充 PDF

javascript - UIWebView 检索链接并导航到它

iOS - NSFileManager 文件不存在

cocoa - 当 NSWindow 对象具有 NSWindow 子类的委托(delegate)时,谁负责对接收到的事件进行操作?