2017-05-25 34 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

回答

相關問題