我有一个包含NSBox控件的窗口.在那个NSBox是几个其他控件,(弹出窗口,文本字段等...)
我在同一个NIB文件中有另外两个NSBox,这些文件中充满了我想在特定条件下与第一个交换的控件.我希望这会发生一个很好的交叉淡入淡出效果,所以我做了以下几点:
在NSWindowController的-awakeFromNib
方法中:
[[self.myWindow contentView] setWantsLayer:YES];
在我正在切换视图的方法中,我使用以下代码:
[[[self.myWindow contentView] animator] replaceSubview:previousView with:newView];
这很好,视图交叉淡出就像我期望的那样.问题是对视图的控制有时会消失,没有明显的原因.它并不总是相同的视图(尽管NSPopUpButtons似乎特别容易出现这种情况),并且它们通常在有焦点时重新出现.
我是否还必须支持所有控制层?
更新:在显式分组中包装动画没有任何区别.在Nib文件中打开setWantsLayer也没有什么区别,但有趣的是,当我这样做时,NSPopupbuttons消失,直到点击其包含视图.在NSPopupbuttons上手动设置Layer也没有什么区别.
似乎其他人遇到了这个问题,但我找不到任何解决方案:
http://www.cocoabuilder.com/archive/message/cocoa/2008/3/30/202691 http://www.cocoabuilder.com/archive/message/cocoa/2008/4/25/205134