在NSView中,我有一个容器视图和两个NSButton(见图)。 NSButton更改容器视图中的内容。为了显示视图并隐藏另一个视图,我这样做:
@IBAction func changeView(sender: NSButton)
{
switch sender.id
{
case "Button 1" { view1.hidden = true; view2.hidden = false; }
case "Button 2" { view1.hidden = false; view2.hidden = true; }
}
}
它工作正常,但是因为在视图中有很多要绘制的(字段,按钮和图像),从视图切换到另一个视图有点(非常小)慢。我怀疑这种方法不正确。
我怎样才能以适当的方式从视图切换到另一个视图?
答案 0 :(得分:2)
我不确定它是否更快,但使用tabless NSTabView
肯定更方便。这样,您可以在笔尖中设置视图,而不会混淆看似重叠的视图。
答案 1 :(得分:2)
隐藏应该没问题。您可能希望切换顺序,以便在设置其他视图未隐藏之前始终隐藏视图。
您还可以从视图层次结构(removeFromSuperview()
)中删除视图,以便有效地隐藏它。确保代码中的某些内容保持对视图的强引用。视图控制器确实如此,因此可能足够好(假设您还有一个对视图控制器的强引用)。
而且,是的,将视图放在NSTabView
中并进行切换也很有效(基本上是使用上述技术之一)。