NSSavePanel,setAccessoryView和动画

时间:2011-11-19 15:53:08

标签: cocoa

我正在制作一个有NSSavePanel的Cocoa应用程序。在此面板模态的生命周期中,我允许用户通过这两个视图中的复选框在此面板之间切换两个不同的附件视图(称为View A和View B)。我正在雪豹上建造。

视图B在高度方向上比视图A大。当从视图B切换到视图A时,Cocoa以保存面板的高度加上视图B的高度开始,在面板底部绘制视图A,并在顶部的视图A,然后慢慢地动画这个空间,以便视图A向上滑动。这看起来还不错。

当从View A切换到View B时,Cocoa在保存面板的最顶部绘制View B的组件,以便它们与保存面板自己的组件(文本字段,按钮等)重叠。然后将View B向下滑动到保存面板自己的组件下方。这看起来很难看。

首先,我不确定如何推断从View A到View B的过渡动画的正确方法。其次,我不确定是否能够完成它。我想我可以只有一个附件视图,只需在从基本模式切换到高级模式时显示和隐藏组件,但这似乎是一种混合物。

有什么建议吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我发现做这样的事情最简单的方法是使用NSTabView,没有可见的标签,不能绘制背景。 A和B是选项卡视图的子视图。使用复选框在NSTabView的子视图之间切换 - 创建一个使用 - [NSTabView selectTabViewItemAtIndex:]的操作方法。然后你不必担心高度变化,Cocoa处理过渡。