2011-08-08 24 views
4

在我的應用程序中,用戶可以按一個鍵在大窗口和小窗口之間切換。在小尺寸下,窗戶的大小足以容納一定的視野。在大尺寸的情況下,視圖變得更大,保持其縱橫比,使得視圖最終與窗戶一樣高,但沒有那麼寬。在大尺寸下,視圖需要集中在窗口中。同時修改窗口框架和視圖框架

現在我正在做2個步驟:(1)調整窗口大小,(2)調整大小並移動視圖。但是,用戶可以看到這兩個步驟一個接一個地發生,而不是同時發生。有沒有辦法讓它看起來像NSWindow和NSView被同時調整大小/移動?或者以其他方式解決這個問題?

回答

1

完成此操作的一種非常簡單的方法是使用NSWindow disableScreenUpdatesUntilFlush。你會這樣使用它:

- (void) toggleWindowSize 
{ 
    [ [ myView window ] disableScreenUpdatesUntilFlush ]; 

    // Do stuff to change the size of the window and view. 
} 
+0

太好了。謝謝。 (我也必須使用-disableFlushWindow。) – jlstrecker

+0

@jlstrecker你可以添加一些信息嗎?對我來說它不起作用。 – MatterGoal

+0

@MatterGoal:你正在改變這個動畫。這個問題和答案是立即改變窗口和查看的大小(用戶看來是一步)的大小。 –