在 OS X 应用程序中,如何以编程方式创建窗口时使用自动布局



我的OS X App尝试以编程方式创建一个窗口,如下所示(由我之前看到的另一个SO问题建议(:

class MyViewController: NSViewController {
    override func loadView() {
        let view = NSView(frame: NSMakeRect(0,0,300,100))
        view.wantsLayer = true
        view.layer?.borderWidth = 2
        view.layer?.borderColor = NSColor.red.cgColor
        self.view = view
   }
}
let viewController = MyViewController()
let window = NSWindow(contentRect: someFrame, styleMask: [.resizable, .closable, .miniaturizable, .titled], backing: NSBackingStoreType.buffered, defer: false)
window.contentView?.addSubview(viewController.view)
window.makeKeyAndOrderFront(nil)

我可以通过上面的代码成功创建窗口。但是,我的问题是...如何使在视图控制器内loadView中创建的视图与窗口的内容视图大小相同?

现在,它使用固定数字(0、0、300、100(创建视图。如何使用自动布局使此视图与窗口大小相同,因此当调整窗口大小时,此视图也会自动调整大小?

有人会认为苹果会记录这样的事情。事实上,他们做到了:

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html

最新更新