2017-05-25 31 views
1

我的OS X应用程序试图创建一个窗口,如下所示编程方式(由另一个SO问题,我在前面所看到的建议):在OS X应用程序中,如何以编程方式创建窗口时使用自动布局?

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)的视图。如何使这个视图与使用自动布局的窗口具有相同的大小,因此当窗口被调整大小时,这个视图会自动调整大小?

+0

为什么你不能使用window.contentview和viewcontroller.view之间的约束?只需使用约束来将viewcontroller.view的顶部,左侧,右侧和底部锁定到window.contentview – Abhishek

回答

相关问题