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
使用后清除资源的方法