swift - 你如何使用 Storyboards/Cocoa 在 Swift 3.x 中引用 View 的窗口

标签 swift xcode macos cocoa nswindow

随着 Xcode 和 Swift 的所有变化,我无法弄清楚如何像我在使用 XIB 的项目中那样处理 stotyboard 驱动的项目中的 View 窗口。 macOS 编程的新手,如果这是基本内容,请提前致歉:

使用 Storyboard 时,如何更改 View 的窗口状态,例如:

window.titleVisibility = .hidden
window.setContentSize(size)

在一个 xib 驱动的项目中,我正在使用

@IBOutlet weak var window: NSWindow!

但这似乎不适用于 Storyboard。我如何使用 Storyboard做同样的事情?任何帮助表示赞赏!

最佳答案

您可以通过访问其窗口属性来获取 View 窗口的引用。请注意,它不能在 view did load 内部完成,但您可以使用惰性初始化程序为 view controller 创建一个 window 属性:

lazy var window: NSWindow! = self.view.window

您可以在 viewWillAppear 方法中自定义窗口:

import Cocoa


class ViewController: NSViewController {

    lazy var window: NSWindow! = self.view.window

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

关于swift - 你如何使用 Storyboards/Cocoa 在 Swift 3.x 中引用 View 的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43426391/

相关文章:

ios - 主视图窗口中的 UISplitViewController 详细 View Controller 加载

操作系统。 URL 中的屏蔽符号

ios - 多个命令产生与信息 plist 错误相关的路径

ios - ionic ios 应用程序构建失败 MainController.xib

ios - 如何运行导致框架运行时错误的 iOS 应用程序 "code signature invalid"

ios - 同时使用滑动手势和触摸开始/移动/结束

php - 需要帮助从 PHP 的混合源在 Swift 中准备 JSON

python - 将 no-X11 tkinter 与 python 一起使用(通过 macports 安装)

ios - 检测 Swift 应用程序是否正在从 Xcode 运行

objective-c - 目标模式不包含 '%' 。生成文件