我想禁用
Cocoa在显示模态表时执行的动画.
Apple的Sheet Programming Guide声明:
… Other sheet behavior, such as the animation when it appears and is dismissed, is handled automatically by the Application Kit.
但它没有提供有关如何禁用此效果的任何提示.
我创建了一个自定义工作表(NSWindow的子类,具有透明背景和一些控件).我可以使用标准的beginSheet方法显示它,如下所示:
[NSApp beginSheet:myCustomSheet
modalForWindow:mainWindow
modalDelegate:self
didEndSelector:...];
工作表显示正常,但在出现时会显示动画,并在关闭时再次显示.
注意:我正在为触摸屏/自助服务终端类型的应用程序编写完全自定义的用户界面,因此没有适用的常用Apple用户界面指南.
最佳答案 这是一个疯狂的猜测(我太懒了,不能尝试),但可以使用Core Animation处理动画.如果是这样,您可以这样做:
[CATransaction begin];
[CATransaction setValue: [NSNumber numberWithBool: YES]
forKey: kCATransactionDisableActions ];
[NSApp beginSheet:myCustomSheet
modalForWindow:mainWindow
modalDelegate:self
didEndSelector:...];
[CATransaction commit];