gpt4 book ai didi

objective-c - 关闭 NSWindow 而不激活下面的窗口

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

考虑以下场景。我有一个有两个窗口的应用程序:

  1. 包含应用程序所有功能的主窗口;
  2. 以及一个可以使用全局快捷方式或通过单击应用程序状态栏图标来调用的辅助窗口。它看起来像这样:enter image description here这是一个简单的窗口,用于快速向应用程序添加数据,而无需打开主窗口 - 可能会更改空间并扰乱用户的工作流程。

    窗口 float 在其他所有内容之上(位于 NSModalPanelWindowLevel 上),并且可以连接所有空间 (NSWindowCollectionBehaviorCanJoinAllSpaces)

问题是:当快速添加窗口被排序时(按下 X 按钮或 Esc),主窗口被设为关键并排序在前面(前提是它位于当前空间的窗口列表中的某个位置)。

这不是我想要的行为。通常,当应用程序的窗口关闭时,是的,您希望激活下面的应用程序窗口,但不是这里 - 这是一个“帮助器”窗口,应该或多或少独立于应用程序本身工作。当我在 Safari 中调用快速添加窗口时,我只想添加一些数据,单击“返回”,然后我希望它消失 - 我希望前一个窗口 (Safari) 成为关键且位于顶部,而不是我的应用程序的主窗口(当然,除非我的应用程序的主窗口是调用快速添加之前的关键)。

那么,如何在不激活下面的窗口的情况下关闭 NSWindow 呢?

我无法弄清楚这一点。我唯一的想法是,也许您可​​以制作一个帮助应用程序来显示这个辅助窗口 - 但这听起来像是很多工作(在进程之间来回发送数据,所有这些......)。一定有更简单的方法!

最佳答案

我认为这不能通过 NSWindow 来(有效)完成。
this answer ,我建议尝试使用带有 NSNonactivatingPanelMask 样式的 NSPanel,而不是创建 NSWindow

关于objective-c - 关闭 NSWindow 而不激活下面的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22695602/

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