我知道這個用例是非典型的,但我一直在試圖找出一種方法來使NSPanel
不被激活,只在某些情況下。是否可以在NSPanel上打開和關閉NSNonactivatingPanelMask
如果NSPanel
與初始化NSNonactivatingPanelMask
(或者如果面板的「非激活」屬性在Interface Builder被選中),在後面的代碼改變式面膜對窗口行爲沒有任何影響:
[panel setStyleMask:([panel styleMask] | NSNonactivatingPanelMask)];
檢查的styleMask
屬性顯示NSNonactivatingPanelMask
已打開,但點擊它的標題還是激活應用程序。
反過來也是如此。使用NSNonactivatingPanelMask
進行初始化,稍後在代碼中將掩碼設置爲([panel styleMask] & ~NSNonactivatingPanelMask)
對窗口行爲沒有影響,導致其在而不是單擊標題欄時激活該應用程序。
是否有一個簡單的解決方法,例如告訴窗口重新解釋其樣式掩碼的方法?如果沒有,最好的選擇是什麼?