2016-11-29 45 views
0

我有一個NSWindowControllerNSViewController,都在故事板中配置。動態更改NSWindow的contentViewController

  • 當我在Interface Builder中設置contentViewController時,一切都按預期工作。
  • 當我以編程方式設置contentViewControllerwindowDidLoad一切都按預期工作。

現在我試圖更新內容視圖控制器響應工具欄按鈕單擊(下)。

@IBAction func toolbarButtonClicked(_ sender: Any) { 
    contentViewController = storyboard?.instantiateController(withIdentifier: "VC") as! NSViewController? 
} 

這種分配使得viewWillAppear要調用的視圖控制器上,但在該點的內容視圖沒有分配的窗口。

這是爲什麼?是否有可能像這樣動態更改窗口的contentViewController

回答

0

它看起來像:

  • 當含量視圖在情節串連圖板或windowDidLoad配置,該視圖已經具有由時間viewWillAppear一個窗口被調用時,即當窗口本身似乎。
  • 當窗口出現後設置內容視圖時,viewWillAppear被調用以指示內容視圖將被添加到窗口;該視圖在調用viewWillLayout之前沒有窗口。

我所用的窗口來訪問當前文檔,所以我的解決辦法是更新內容之前訪問文檔,並用它來配置內容視圖控制器。