我有一个带有按钮和状态的NSView,在程序执行过程中它们会发生变化。但是,是否有一种方法可以破坏该视图并“重生”在xib中的原始视图呢?我可以隐藏并显示NSView,但是销毁和重新创建特定视图或将其恢复到初始状态该怎么办?该视图上的每个组件都在哪里“重置”?可以这样做吗?
答案 0 :(得分:2)
要执行的操作是为视图使用单独的XIB。它的所有者是您的视图控制器类(NSViewController
的子类)。您将分配该类的实例,并使用NIB名称对其进行初始化。首次请求其view
属性时,这将为NIB加载视图层次结构的新实例。然后,您可以在超级视图的子视图中用新视图替换旧视图,并且,如果使用自动布局,请适当设置约束。
一步添加视图控制器类和视图XIB的一种简单方法是执行File> New> File> Cocoa类。将“子类的”组合框设置为NSViewController
。输入班级名称。选中“也为用户界面创建XIB文件”。单击创建,然后单击要保存文件的位置。
但是,所有这些都表示,视图不应保留状态,而应反映状态。模型应保持状态,控制器层应配置视图以反映模型,包括在模型更改时对其进行更新。因此,如果您做对了正确的事,通常应该只重置模型状态,然后重置视图。