2016-06-12 39 views
4

NSPanel對於HUD面板具有「非激活」選項。我希望在NSWindow上獲得相同的功能,即我希望窗口能夠接受點擊,但不會將焦點從任何活動應用程序中移除(我的意思是在點擊窗口之前激活的應用程序激活了我的應用程序 - 在這種情況下草圖)。有沒有辦法在NSWindow上獲得NSPanel「非激活」式功能?

我試圖創建一個NSWindow子類和設置canBecomeMainWindowcanBecomeKeyWindowNO,但似乎並不奏效,我想是因爲這些設置僅在相同的應用程序內,向窗口

我在這裏要做的是防止this flickering。我很肯定這是可行的,因爲像阿爾弗雷德這樣的應用程序似乎正在做。

+0

嗨艾略特,歡迎來到SO。當你問一個問題時,嘗試插入代碼片段來展示你已經完成了什麼以及你的問題在哪裏。這將吸引更多用戶詳細研究您的問題,併爲您提供答案。 – Patrick

+0

爲什麼不使用'NSPanel'?它**是一個窗口。您可以使用'NSWindow'做任何事情,您也可以使用'NSPanel'。有幾個方法/屬性可以改變它們的默認行爲,但是你可以使用覆蓋改變它們。 –

+0

@KenThomases感謝您的回覆肯。我與NSPanel碰到的問題是讓整個窗口變得比較暗,並試圖設置'NSWindowTitleHidden'。在我的'NSWindow'中,我有這些外觀設置,然後將'NSVisualEffectView'設置爲亮:'self.window.styleMask = self.window.styleMask | NSFullSizeContentViewWindowMask; self.window.titleVisibility = NSWindowTitleHidden; self.window.titlebarAppearsTransparent = YES;' –

回答

0

如果有其他人遇到這個問題,雖然不是問題的確切答案,但您確實可以通過將NSVisualEffectView添加到視圖控制器並將其設置爲點亮來確定NSPanel的亮度。

相關問題