我在同一个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
[NSAnimationContext beginGrouPing];[[[self.myWindow contentVIEw] animator] replaceSubvIEw:prevIoUsVIEw with:newVIEw];[NSAnimationContext endGrouPing];
另外,你是否有理由调用setWantsLayer:在awakeFromNib中而不是仅仅在nib中设置它(NSVIEw检查器中应该有一个复选框).
总结以上是内存溢出为你收集整理的objective-c – 图层支持视图和闪烁控件全部内容,希望文章能够帮你解决objective-c – 图层支持视图和闪烁控件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)