首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何发布NSColorPanel?

如何发布NSColorPanel?
EN

Stack Overflow用户
提问于 2016-03-07 17:01:02
回答 1查看 901关注 0票数 0

我想让NSColorPanel在用户点击NSColorWell时启动。当用户很好地点击颜色时,面板就会打开,但是即使在用户关闭面板之后,面板的实例也会被保存。

因此,我将其releasedWhenClosed设置为true。然而,这一次,当用户关闭窗口时,面板就会正常释放,但是下次用户通过点击相同的颜色打开面板时,应用程序会崩溃,因为面板实例已经消失了。

怎样才能关闭窗口,让用户重新启动颜色呢?具体来说,我将color的activate:方法设置为:

代码语言:javascript
复制
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)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-07 17:34:01

NSColorPanel是一个单独的例子,它是懒惰加载的。只能创建一个NSColorPanel实例。在第一次sharedColorPanel调用时,颜色面板被加载到内存中。如果您要发布这个面板,下次您将访问它时,应用程序将崩溃,因为NSColorPanel类保留对已释放实例的引用。苹果并没有提供一种在sharedColorPanel使用后清除资源的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35849582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档