2017-09-03 54 views
1

我想知道聚光燈如何聚焦浮動,而另一個窗口仍然有焦點!如何在不盜取macOS的情況下顯示窗口?

enter image description here

,我可以很容易使一個窗口浮在所有其他窗口window?.level = Int(CGWindowLevelForKey(.maximumWindow)),但我不能讓兩個窗口都具有焦點,幫幫忙!

Cocoa有沒有像ShowWithoutActivating這樣的功能?

+2

你是什麼意思「都具有焦點」?這是不可能的。如果是這樣,那麼你的打字就會出現在兩個窗口中,這會非常混亂和麻煩。 Spotlight窗口絕對「竊取」焦點。 (我不會認爲它是「偷」,因爲它是用戶要求的。) –

回答

4

我一直在玩弄這一點,並且當最前面的窗口不是來自最前面的應用程序的同一個進程時,我似乎能夠產生這種效果,這正是我猜測Spotlight可能正在做的事情。我可以這樣做:

  1. 在我的應用的Info.plist中設置LSUIElement爲YES。

  2. 在Interface Builder中,將窗口的類設置爲NSPanel,在屬性檢查器中選中「Non Activating」,並在Identity Inspector下的User Defined Runtime Attributes中將「isFloatingPanel」設置爲YES。

  3. 在一段時間內,其他一些應用程序在最前(我只是用一個5秒的延遲,給自己時間彈出一些其他應用程序的前面,並選擇一個文本字段),撥打隨後orderFrontRegardless()makeKeyAndOrderFront()窗口。

當我這樣做,我得到以下(注意Xcode的「模塊」領域仍得出的對焦環):

enter image description here

+0

非常感謝!這就是我想要的。你的回答非常清楚,真心感謝你的幫助。 – Seven

相關問題