0
如果我手动创建NSWindow
:编程创建NSWindow缓慢调整
NSWindow* window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 600, 500)
styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable
backing:NSBackingStoreBuffered defer:YES];
...然后调整它是缓慢和laggy相比,从故事板的窗口。为什么?
为什么不使调整_faster_?你会认为这实际上会增加开销。 – matt
当调整非层次支持的窗口大小时,应用程序将其内容重新绘制到由窗口服务器提供的缓冲区中 - 除了最小的窗口外,所有窗口均为兆字节的未压缩图像数据。调整图层背景窗口的大小可能只需更改构成窗口的图层的属性 - 将标题栏背景拉伸至新宽度,设置此按钮的位置等等 - 同时保留其现有内容。 – s4y
使用它对内存使用的影响也很有趣。当窗口尺寸尽可能小时,具有非图层背景窗口的示例应用程序使用14MB,窗口尺寸为我的MBP屏幕尺寸时为53MB。当我使窗口支持层时,无论窗口的大小如何,它都保持在14MB(因为纯灰色背景的每个像素不需要单独表示)。 – s4y