我需要在OS X的程序中創建一個「全屏疊加窗口」。準確地說,窗口必須始終位於所有其他窗口之上,包括在非最大化窗口空間的菜單欄頂部,並在他們自己的空間中最大化的窗口之上,並在Exposé期間排在最前面。它不得參與「變化空間」動畫;即其位置必須始終相對於物理屏幕固定。 (該窗口將是半透明的,將忽略鼠標事件,但我知道如何做到這一點。)如何製作出現在全屏窗口頂部的可可窗口?
如何實現此「覆蓋窗口」行爲?我有這麼遠:
- 我應該設置
window.level
到CGWindowLevelKey(kCGMaximumWindowLevelKey)
所以它總是在同一個空間中其他窗口的頂部。 - 我應該設置
NSWindowCollectionBehaviorStationary
,以便在Exposé期間窗口保持原位。
我不知道如何在切換空格時保持這種行爲。我以爲我應該設置NSWindowCollectionBehaviorCanJoinAllSpaces
,但它的行爲有兩個問題:
- 該窗口不出現在其他全屏窗口之上。
- 窗口是重複在每個空間,而不是停留在所有空間頂部的同一個地方。由於空間切換動畫,這很重要。
I have heard that an NSPanel
would help me,但我還沒有能夠做到這一點。
總之,在OS X中,全屏窗口頂部是否會出現一個窗口?你能提供一個簡短的完整例子嗎?
我不認爲你已經找到了答案呢?我還需要在另一個應用程序的全屏窗口上顯示一個窗口。 –
@MarkBessey我確實使用'NSPanel'找到了一個解決方案。我會嘗試用一些示例代碼回答這個問題,當我有一個時刻 – jameshfisher
@jameshfisher你能分享你的解決方案嗎?我有類似的問題,我已經嘗試了你在描述中提到的內容,但不幸的是它們不起作用。 –