2016-11-29 48 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之前没有窗口。

我所用的窗口来访问当前文档,所以我的解决办法是更新内容之前访问文档,并用它来配置内容视图控制器。