gpt4 book ai didi

cocoa - 是否可以在 NSPanel 上打开和关闭 NSNonactivatingPanelMask

转载 作者:行者123 更新时间:2023-12-03 16:46:42 26 4
gpt4 key购买 nike

我知道这个用例是非典型的,但我一直在尝试找出一种方法,使 NSPanel 仅在某些情况下不激活。

如果使用 NSNonactivatingPanelMask 初始化 NSPanel(或者如果在 Interface Builder 中选中了面板的“Non Activating”属性),则稍后在代码中更改样式掩码对窗口行为没有影响:

[panel setStyleMask:([panel styleMask] | NSNonactivatingPanelMask)];

检查 styleMask 属性显示 NSNonactivatingPanelMask 已打开,但单击其标题栏仍会激活应用程序。

反之亦然。使用 NSNonactivatingPanelMask 进行初始化并将掩码设置为 ([panel styleMask] & ~NSNonactivatingPanelMask) 稍后在代码中对窗口行为没有影响,导致它 单击标题栏时激活应用程序。

是否有一个简单的解决方法,例如告诉窗口重新解释其样式掩码的方法?如果没有,最合适的替代方案是什么?

最佳答案

我发现的唯一解决方案是取消选中 IB 中的非激活复选框。然后稍后在代码中设置或删除 NSNonactivatingPanelMask 标志。

if (nonactivating)
self.window.styleMask &= ~NSNonactivatingPanelMask;
else
self.window.styleMask |= NSNonactivatingPanelMask;

您仍然可以通过单击窗口的标题栏来激活您的应用程序,这可能是不需要的。您可以完全禁用标题栏,也可以将其作为激活应用程序的另一种方式。

关于cocoa - 是否可以在 NSPanel 上打开和关闭 NSNonactivatingPanelMask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15478153/

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