在我的项目中使用NSWindow
时,我通常会指定realeaseWhenClosed
选项,并在需要时重新加载它。我用谷歌搜索了NSWindow
个内存选项,找不到具体的内容:
有人可以向我解释NSWindow
记忆选项的差异,即延迟,一次性,缓冲,保留,非保留。
答案 0 :(得分:1)
你应该总是按照NSBackingStoreType—Buffered Window Drawing这里记录的缓冲使用其他两个选项(保留和非保留),你也不应该使用它们。
缓冲窗口将所有绘图渲染到显示缓冲区然后 将它刷到屏幕上。
您应该使用此模式。它支持硬件加速,Quartz 绘图,并在可能的情况下利用GPU。它也是 支持alpha通道绘图,不透明度控件,使用 合成
在OS X v10.0及更高版本中可用。
initWithContentRect的defer参数:styleMask:backing:defer: 指定NSWindow是否立即创建其窗口设备 或者只有当它在屏幕上移动时。推迟创建窗口 设备可以为不具备的窗口提供一些性能提升 立即显示,因为它减少了所需的工作量 预先演出。推迟创建窗口设备 在创建NSWindow本身时不可能特别有用 延期或当除了以外的目的需要NSWindow时 显示内容。例如,具有关键等价物的子菜单必须 存在的关键等价物工作,但可能永远不会 显示。
当存储器也可以通过销毁窗口设备来保存 窗口从屏幕上删除。 setOneShot:方法控件 这种行为。一次性窗口设备仅在其NSWindows时存在 在屏幕上。这意味着后备存储也会在何时发布 隐藏应用程序,或者当窗口小型化时。