2010-08-06 54 views
3

我想禁用可可显示模态片时执行动画。如何在显示模态表单时禁用Cocoa的默认动画?

苹果Sheet Programming Guide状态:

...等板材的行为,如动画当它出现,被罚下场,由应用程序套件自动处理。

但它没有提供关于如何禁用此效果的任何提示。

我已创建自定义片材(NSWindow的在它的透明背景和一些控制的子类)。我能够使用标准的方法beginSheet如下进行显示:

[NSApp beginSheet:myCustomSheet 
    modalForWindow:mainWindow 
    modalDelegate:self 
    didEndSelector:...]; 

的片材显示良好,但它通过动画显示时,再次当它关闭。

注:我正在为触摸屏/信息亭类型应用程序编写完全自定义的用户界面,因此没有任何常用的Apple用户界面准则适用。

回答

0

这是胡乱猜测(我懒得去尝试),但动画可以使用核心动画进行处理。如果是这样,您可能可以这样做:

[CATransaction begin]; 
[CATransaction setValue: [NSNumber numberWithBool: YES] 
    forKey: kCATransactionDisableActions ]; 
[NSApp beginSheet:myCustomSheet 
    modalForWindow:mainWindow 
    modalDelegate:self 
    didEndSelector:...]; 
[CATransaction commit]; 
1

有一个用户默认为工作表的动画速度。查一查,看看您是否尝试将其设置为0。

+1

挽救他人的寻找它的麻烦发生了什么,这是'NSWindowResizeTime',这里的讨论:http://www.macosxhints.com/article .PHP?故事= 2004051208143172和 – JWWalker 2010-08-06 20:42:30

+0

感谢。我已将答案作为维基,因此请随时向其添加任何信息。 – 2010-08-07 09:13:27

+0

链接需要订阅? – tofutim 2014-03-05 15:43:55

相关问题