gpt4 book ai didi

swift - 如何释放 NSColorPanel?

转载 作者:行者123 更新时间:2023-11-28 12:53:01 25 4
gpt4 key购买 nike

我想让 NSColorPanel 在用户点击 NSColorWell 时启动。当用户点击颜色井时面板打开,但即使在用户关闭面板后面板的实例也会保留。

所以我将它的 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 实例。颜色面板在第一次 sharedColorPanel 调用时加载到内存中。如果您释放此面板,应用程序将在您下次访问它时崩溃,因为 NSColorPanel 类保留对已释放实例的引用。 Apple 不提供在使用 sharedColorPanel 后清除资源的方法。

关于swift - 如何释放 NSColorPanel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35849582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com