NSWindow记忆选项

时间:2015-04-22 09:51:49

标签: objective-c xcode macos swift memory-management

在我的项目中使用NSWindow时,我通常会指定realeaseWhenClosed选项,并在需要时重新加载它。我用谷歌搜索了NSWindow个内存选项,找不到具体的内容:

有人可以向我解释NSWindow记忆选项的差异,即延迟一次性缓冲保留非保留

1 个答案:

答案 0 :(得分:1)

你应该总是按照NSBackingStoreType—Buffered Window Drawing这里记录的缓冲使用其他两个选项(保留和非保留),你也不应该使用它们。

  

缓冲窗口将所有绘图渲染到显示缓冲区然后   将它刷到屏幕上。

     

您应该使用此模式。它支持硬件加速,Quartz   绘图,并在可能的情况下利用GPU。它也是   支持alpha通道绘图,不透明度控件,使用   合成

在OS X v10.0及更高版本中可用。

  

initWithContentRect的defer参数:styleMask:backing:defer:   指定NSWindow是否立即创建其窗口设备   或者只有当它在屏幕上移动时。推迟创建窗口   设备可以为不具备的窗口提供一些性能提升   立即显示,因为它减少了所需的工作量   预先演出。推迟创建窗口设备   在创建NSWindow本身时不可能特别有用   延期或当除了以外的目的需要NSWindow时   显示内容。例如,具有关键等价物的子菜单必须   存在的关键等价物工作,但可能永远不会   显示。

     

当存储器也可以通过销毁窗口设备来保存   窗口从屏幕上删除。 setOneShot:方法控件   这种行为。一次性窗口设备仅在其NSWindows时存在   在屏幕上。这意味着后备存储也会在何时发布   隐藏应用程序,或者当窗口小型化时。