我正在制作一个具有NSSavePanel的Cocoa应用程序。在此面板的生命周期内,我允许用户通过这两个视图中的复选框在此面板的两个不同附件视图(称为View A和View B)之间切换。我在雪豹的基础上建造。
视图B的高度比视图A大。当从视图B切换到视图A时,Cocoa从保存面板的高度加上视图B的高度开始,在面板底部绘制视图A,在视图A的顶部留出一块空白空间,然后慢慢地将此空间动画移开,使视图A向上滑动。这个看起来没问题。
从视图A切换到视图B时,Cocoa会在保存面板的最顶部绘制视图B的组件,以便它们与保存面板自身的组件(文本字段、按钮等)重叠。然后,它将View B向下滑动到保存面板自己的组件下面。这看起来很难看。
首先,我不确定如何推理正确的方式来实现从视图A到视图B的转换。其次,我不确定是否能完成。我想我可以只有一个附件视图,在从基本模式切换到高级模式时只在其中显示和隐藏组件,但这看起来有点杂乱无章。
有什么建议吗?提前谢谢。
发布于 2012-08-20 00:42:06
我发现做这样的事情最简单的方法就是使用一个没有可见标签的NSTabView,它不会绘制背景。A和B是选项卡视图的子视图。使用复选框可在NSTabView的子视图之间切换--创建使用-NSTabView selectTabViewItemAtIndex:的操作方法。这样你就不必担心高度的变化了,Cocoa会处理这个过渡。
https://stackoverflow.com/questions/8195183
复制相似问题