重新加载视图时出现问题。OSX不像IOS那么简单。
在 MainMenu.xib 我有一个 NSBox。根据 Hillegrath 的说法,多个视图存储在一个数组中,当按下分段按钮时,视图就会暴露出来。这工作正常。我的挫败感包括在进行更改后重新访问这些视图,这些更改应该导致它们通过[self someAction]重新显示新值。其中两个视图中的操作会更改(全局)值,这些值应该在其他视图中传播更改。我正在使用带有 xib(MainMenu)的窗口控制器来保存包含视图的框。我还在代码中为视图命名。
全局 ivar 值会在需要时正确更改,并且日志显示了这一点。然而,当重新访问视图时,不会发生相关操作,即更新视图细节。
似乎发生的是在显示各种视图时未调用 loadView ,** **。awakeFromNib 和 loadView 在第一次显示每个视图但不会重新显示时正确运行。这意味着视图可能被隐藏但 viewDidUnhide 没有效果。
视图更改代码(来自 SO MVC 答案和 Hillegrath)是
NSViewController *activeVC =
(NSViewController *) self.viewControllers[index];
// [_box setContentView:nil];
[_box setContentView:activeVC.view];
[_box setNeedsDisplay:YES];
从复制的代码中可以看出,在设置新视图之前,我还尝试将活动内容设置为 nil,但无济于事。
任何想法、建议、通知都无法正常工作,但可能无法正确设置。
谢谢