viewDidAppear方法中视图的窗口字段是否为零?

时间:2017-09-24 20:29:19

标签: swift macos cocoa viewcontroller nswindowcontroller

我有几个NSViewControllers引用了视图NSWindowController的字段。我对视图生命周期契约的理解表明,我可以依赖于调用viewDidAppear时填充的视图窗口。直到今天显而易见的Xcode更新(当我开始使用Xcode时,它似乎更新了一些库,现在版本为9.0(9A235))。现在,当我的NSViewController实例调用viewDidAppear时,self.view.window字段实际上是零!代码看起来像这样(添加了一些调试内容):

override func viewDidAppear() {
    super.viewDidAppear()
    if let w = self.view.window {
        if let bmw = w.windowController {
            rf = (bmw as! BudgetMunkyWindow).refreshManager;
            rf.add(listener:self);
        } else {
            print("There was not window controller");
        }
    } else {
        print("there is no window");
    }
    self.categoryTable.reloadData()
    categoryTable.expandItem(nil, expandChildren:true)
}

这个合同最近在某个时候发生了变化吗?此时,我无法在构建视图的过程中随时访问窗口控制器,这至少可以说是尴尬。

0 个答案:

没有答案