2011-08-08 64 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:你正在改变这个动画。这个问题和答案是立即改变窗口和查看的大小(用户看来是一步)的大小。 –