gpt4 book ai didi

cocoa - 隐藏窗口直到显示顶部窗口

转载 作者:行者123 更新时间:2023-12-03 17:07:07 25 4
gpt4 key购买 nike

我面临着一些恼人的设计问题。给我的问题起一个标题并不容易。

我必须显示两个窗口,一个在另一个之上。第一个是 Cocoa 窗口,第二个是用 Qt 制作的。在第二个窗口中,执行操作,但用户可以选择关闭该窗口。他必须退回到第一个窗口。

显示我的第一个窗口,它实际上是 SFAuthorizationPluginView ,我愿意:

[myview displayView];

然后,在第一个窗口的顶部显示用 Qt 制作的窗口:

QWidget* w = openMyScreen();
NSView* v = (NSView*)w->winId();
[[v window] setLevel:2003];

这效果很好,但是在显示第二个窗口之前有一个小的延迟。因此我们可以在很短的时间内看到第一个窗口。

我需要第二个窗口位于第一个窗口的顶部,因为用户可以关闭第二个窗口并且必须有权访问第一个窗口。

关于如何隐藏第一个窗口(仅在第二个窗口出现的时间)的技巧有什么想法吗?

提前致谢

最佳答案

NSDisableScreenUpdatesNSEnableScreenUpdates ( link ) 在这种情况下可能很有用。文档说:

You typically call this function so that operations on multiple windows appear atomic to the user.

这似乎描述了您的情况。

不过,有一个不相关的建议:不要随意设置窗口级别。 2003 的窗口级别可能会导致窗口出现在停靠栏甚至菜单栏等内容上,这肯定会很奇怪。除非有充分的理由,否则您应该坚持 NSWindow.h 中声明的标准级别。 NSFloatingWindowLevel 可能合适(尽管我不确定 SFAuthorizationPluginView 窗口显示在哪个级别)。

关于cocoa - 隐藏窗口直到显示顶部窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440106/

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