首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可可HUD面板在调用orderOut后再次显示:

可可HUD面板在调用orderOut后再次显示:
EN

Stack Overflow用户
提问于 2014-04-10 10:13:13
回答 3查看 214关注 0票数 0

我使用带有HUD样式的NSPanel来显示一些信息。

在HUD面板中有一个按钮,当用户单击该按钮时,我将通过以下方式打开一个新窗口:

代码语言:javascript
复制
[anotherWindowController showWindow:self];
[anotherWindowController.window makeKeyAndOrderFront];

当窗口显示时,我希望面板消失,所以我设置了主窗口的委托,在windowDidResignMain回调中,我调用了[hudPanel orderOut:nil]

HUD面板确实消失了(我可以看到它),但是就在它关闭后,它重新打开。

我检查了所有可能的orderFront:代码,但没有一个被调用。所以我的手真的被绑住了。这是系统级别的行为吗?有人能指引我渡过难关吗?

编辑:

我忘记提到,按钮驻留在一个NSPopover中。所以,基本上,在HUD面板中有一个NSButton。当用户单击该按钮时,将显示一个NSPopover,其中有一个按钮可以打开新窗口。

非常感谢!

EN

回答 3

Stack Overflow用户

发布于 2014-04-10 10:15:43

我遇到了问题。以下问题解决了这个问题:

代码语言:javascript
复制
[NSApp endSheet:yourPanel];
[yourPanel orderOut:self];
票数 0
EN

Stack Overflow用户

发布于 2015-04-15 09:22:11

使用

代码语言:javascript
复制
[hudPanel performClose:nil]

(在Swift中,我必须使用self而不是nil)。我在使用orderOut时遇到了问题,并使用上述方法解决了这个问题。

票数 0
EN

Stack Overflow用户

发布于 2018-02-27 21:57:12

请在[hudPanel close]后添加[hudPanel orderOut:nil]

swift:hudPanel.close()

从苹果的文档:如果窗口是键或主窗口,它后面的窗口对象是按其位置的键或主窗口。调用orderOut(_:)会使窗口从屏幕上删除,但不会导致其释放。有关何时释放窗口的信息,请参见close()方法。

我认为,有时窗口在窗口控制器内部逻辑中会再次出现。我有一个问题,当长按键盘按钮杀死窗口,但镜头keyDown事件只隐藏它在一秒。在使用close之后,一切都进展顺利。

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

https://stackoverflow.com/questions/22985047

复制
相关文章

相似问题

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