2010-08-06 52 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

相關問題