如何使用Storyboards / Cocoa引用Swift 3.x中的视图窗口

时间:2017-04-15 13:05:03

标签: swift xcode macos cocoa nswindow

在Xcode和Swift中进行了所有更改,我无法弄清楚如何在我使用XIB的项目中以一种强大的方式处理stotyboard驱动项目中的视图窗口。对于macOS编程的新手,如果这是基本的东西,请提前道歉:

使用故事板时,如何使用例如:

更改视图的窗口状态
window.titleVisibility = .hidden
window.setContentSize(size)

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

@IBOutlet weak var window: NSWindow!

但这似乎与故事板的工作方式不同。如何使用故事板进行相同的操作?任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

您可以获取访问其窗口属性的视图窗口的引用。请注意,无法在视图内部执行加载,但您可以使用延迟初始化程序为视图控制器创建窗口属性:

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
    }
}

答案 1 :(得分:0)

这似乎有效:

if let window = NSApplication.shared().mainWindow {
    window.titleVisibility = .hidden
}

这是一个好方法吗?