通过 NSWindowController 从窗口中删除 RepresentedFilename

Posted

技术标签:

【中文标题】通过 NSWindowController 从窗口中删除 RepresentedFilename【英文标题】:Removing RepresentedFilename From Window Through NSWindowController 【发布时间】:2018-06-21 02:20:49 【问题描述】:

我知道我们可以通过窗口控制器 (NSWindowController) 为窗口 (NSWindow) 设置一个带有通用图标的表示文件名。

class MyWindowController: NSWindowController 
    @objc func setTitleFileName(notification: NSNotification) 
        // myWindow is an IBOutlet object to a window (`NSWindow`), path is a file path
        if let path = notification.object as? String 
            myWindow.setTitleWithRepresentedFilename(path)
        
    

所以我得到一个文件名 (Test.mov) 作为代表文件名。我在一个视图控制器 (NSViewController) 中设置了一个文件。当应用程序转换到另一个应用程序时,我想将其删除并重新设置应用程序名称。但它看起来不像我可以删除它。如果我只是为窗口设置一个字符串,例如

myWindow.title = "Application"

,通用图标仍将保留。我不能将 nil 设置为 setTitleWithRepresentedFilename。完成后有什么方法可以删除通用文件图标吗?谢谢。

【问题讨论】:

【参考方案1】:
myWindow.representedFilename = ""

myWindow.setTitleWithRepresentedFilename("")

将删除图标。

【讨论】:

一个空的文件路径...为什么我没想到呢?谢谢。

以上是关于通过 NSWindowController 从窗口中删除 RepresentedFilename的主要内容,如果未能解决你的问题,请参考以下文章

如何从 xib 文件加载和显示窗口

NSWindowController showWindow: 闪烁窗口

来自 NSWindowController Cocoa 的自定义视图

osx:在 NSWindowController 和 NSViewController 之间进行委托

Swift 中的 NSWindowController。使用 Nib 进行子类化和初始化

Interface builder中的NSWindowController对象链接