Swift 如何释放NSColorPanel?
我想在用户点击Swift 如何释放NSColorPanel?,swift,cocoa,nscolorpanel,nscolorwell,Swift,Cocoa,Nscolorpanel,Nscolorwell,我想在用户点击NSColorWell时启动NSColorPanel。当用户点击颜色井时,面板将打开,但即使在用户关闭面板后,面板的实例也将保持不变 因此,我将其releasedWhenClosed设置为true。但是,这一次当用户关闭窗口时,面板被正确释放,但下一次用户点击同一颜色井打开面板时,应用程序崩溃,因为面板实例已经消失 如何关闭窗口,但让用户重新启动颜色?具体来说,我将颜色井的activate:方法设置为: override func activate(exclusive: Bool)
NSColorWell
时启动NSColorPanel
。当用户点击颜色井时,面板将打开,但即使在用户关闭面板后,面板的实例也将保持不变
因此,我将其releasedWhenClosed
设置为true
。但是,这一次当用户关闭窗口时,面板被正确释放,但下一次用户点击同一颜色井打开面板时,应用程序崩溃,因为面板实例已经消失
如何关闭窗口,但让用户重新启动颜色?具体来说,我将颜色井的activate:
方法设置为:
override func activate(exclusive: Bool) {
NSColorPanel.sharedColorPanel().showsAlpha = true // the app crashes here the next time the user opens the color well
super.activate(exclusive)
}
NSColorPanel
是一个单例,它是延迟加载的。只能创建一个NSColorPanel
实例。颜色面板在第一次调用时加载到内存中。若要释放此面板,则下次访问时应用程序将崩溃,因为NSColorPanel
class保留对已发布实例的引用。苹果没有提供在sharedColorPanel
使用后清除资源的方法 NSColorPanel
是一个单例,它是延迟加载的。只能创建一个NSColorPanel
实例。颜色面板在第一次调用时加载到内存中。若要释放此面板,则下次访问时应用程序将崩溃,因为NSColorPanel
class保留对已发布实例的引用。苹果没有提供在sharedColorPanel
使用后清除资源的方法