我知道这个用例是非典型的,但我一直试图找出一种方法来使NSPanel非激活,仅在某些情况下。
如果 anNSPanel被初始化NSNonactivatingPanelMask(或者如果在 Interface Builder 中选中了面板的“Non Activating”属性),那么稍后在代码中更改样式掩码对窗口行为没有影响:
[panel setStyleMask:([panel styleMask] | NSNonactivatingPanelMask)];
检查styleMask属性显示它NSNonactivatingPanelMask已打开,但单击其标题栏仍会激活应用程序。
反之亦然。在代码中使用掩码进行初始化NSNonactivatingPanelMask并将掩码设置为([panel styleMask] & ~NSNonactivatingPanelMask)稍后对窗口行为没有影响,导致单击标题栏时它不会激活应用程序。
是否有一个简单的解决方法,例如告诉窗口重新解释其样式掩码的方法?如果没有,最合适的选择是什么?