首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSColorPanel在第一次出现后没有出现

NSColorPanel在第一次出现后没有出现
EN

Stack Overflow用户
提问于 2022-06-20 14:07:23
回答 1查看 26关注 0票数 -1

我有一个statusBarItem,我想用它来显示NSColorPanel。

当按钮被点击时,将调用以下代码,这将激活ColorPanel。

代码语言:javascript
复制
@IBAction func showColour( button:NSButton ){
    DispatchQueue.main.async {
        NSApplication.shared.orderFrontColorPanel(self)
        print( "panel frame:\(NSColorPanel.shared.frame), is visible:\(NSColorPanel.shared.isVisible )" )
    }
}

如果用户按下关闭按钮关闭彩色面板,点击按钮显示面板正常工作,并再次显示面板。但是,如果用户在空空间中单击,colorPanel就消失了,点击按钮重新打开面板就不能再工作了。但是,根据日志,面板似乎有一个有效的rect,并且是可见的。

有什么建议吗?

谢谢

雷扎

EN

回答 1

Stack Overflow用户

发布于 2022-06-20 18:01:59

正如Reddit上的一位用户所指出的那样,当点击空空间时,应用程序将转到后台,不再是前台应用程序,因此不会显示像彩色面板这样的实用程序样式的窗口。因此,由于应用程序是不活动的,随后点击显示彩色面板,将不会把实用程序窗口到前面。

因此,解决方案是在尝试打开彩色面板之前确保应用程序处于活动状态,方法是调用:

代码语言:javascript
复制
NSApplication.shared.activate(ignoringOtherApps: true )

在showColour函数中

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

https://stackoverflow.com/questions/72688402

复制
相关文章

相似问题

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