我想禁用 Cocoa 在显示模式表时执行的动画。
Apple's 表编程指南 http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Sheets/Concepts/AboutSheets.html#//apple_ref/doc/uid/20001043-BABFIBIA states:
...其他工作表行为(例如出现和消失时的动画)由应用程序工具包自动处理。
但它没有提供任何有关如何禁用此效果的提示。
我创建了一个自定义工作表(NSWindow 的子类,具有透明背景和其中的一些控件)。我可以使用标准 beginSheet 方法显示它,如下所示:
[NSApp beginSheet:myCustomSheet
modalForWindow:mainWindow
modalDelegate:self
didEndSelector:...];
该工作表显示正常,但它在出现时会经历一个动画,在关闭时又会经历一次动画。
Note:我正在为触摸屏/信息亭类型应用程序编写一个完全定制的用户界面,因此通常的 Apple 用户界面指南均不适用。
这是一个疯狂的猜测(我懒得尝试),但动画可能会使用核心动画来处理。如果是这样,您也许可以这样做:
[CATransaction begin];
[CATransaction setValue: [NSNumber numberWithBool: YES]
forKey: kCATransactionDisableActions ];
[NSApp beginSheet:myCustomSheet
modalForWindow:mainWindow
modalDelegate:self
didEndSelector:...];
[CATransaction commit];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)