gpt4 book ai didi

cocoa - 显示模态 NSWindow,而不激活其他应用程序窗口

转载 作者:行者123 更新时间:2023-12-03 16:06:55 24 4
gpt4 key购买 nike

我有一个在菜单栏中正确显示的 NSStatusItem 。其中一个项目(单击时)显示我的应用程序中的模式 NSWindow,这意味着执行一次性任务,然后消失。 (例如,用户输入一小段文本,单击“保存”,模式 NSWindow 就会消失。)

应用程序在后台运行时会出现此问题。模式窗口正确地显示在前台运行的任何应用程序之上,但是当用户单击“保存”按钮时,应用程序的其余窗口也会被激活。这是不可取的,因为用户随后必须单击返回他们正在使用的任何应用程序。 (破坏了 NSStatusItem 的便利性。)我使用以下方式显示模式窗口:

[myWindow setFrame:finalRect display:YES animate:NO];
[myWindow setLevel:NSPopUpMenuWindowLevel];
[NSApp runModalForWindow:myWindow];

有什么方法可以防止弹出窗口中的点击/事件导致应用程序的其余部分变为事件状态?或者有一种方法让 NSApp 知道这个特定的面板不应该自动激活应用程序的其余部分?谢谢!

最佳答案

不要创建 NSWindow,而是创建一个样式为 NSNonactivatingPanelMaskNSPanel。然后,您可以执行常规的 makeKeyAndOrderFront:orderOut: 来根据需要显示/隐藏面板。

关于cocoa - 显示模态 NSWindow,而不激活其他应用程序窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4484521/

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