2012-01-22 21 views
1

是否有可能使窗口像真正的擡頭顯示一樣?如果沒有完全可以使窗戶做以下任何部分?找到關於如何編碼這樣的窗口的信息的任何指針都會很棒。自定義NSWindows

1 - 超越一切?

  • 所有其他窗口?
  • 在所有空間上?
  • 顯示在屏幕保護程序之上? [1]

2 - 非互動?

  • 從未得到重點?
  • 忽略所有的鼠標點擊? (即,如果用戶點擊其中的窗口,是什麼都窗下接收click)

[1]所示的屏幕保護程序,前述情況是用戶可設置的偏好(默認爲關閉)。如果顯示器是一臺大電視機,並且屏幕保護程序幻燈片正在運行,用戶可能希望顯示該顯示器。

+0

是的,這是可能的。當您更改屏幕音量/等時出現的邊框會執行此操作,並且我看到第三方應用會執行此操作。但我不確定它是如何完成的。我懷疑你需要子類NSWindow,選擇一個相關的窗口級別(我相信有這個常量,你可以做一些像'kConstantName - 10'。我不知道如何讓鼠標點擊「通過」一個窗口,但我懷疑它只是一個布爾標誌,確保你的繪圖代碼*非常高效,我想它會在任何其他應用程序執行任何繪圖時運行,也許是NSImage緩存? –

回答

0

我不確定你想要什麼。如果你正在尋找一個全屏應用程序,這裏是Implementing the Full-Screen Experience

否則,你可能會想讀Window Layers and Levels

下面是一個方便使出:

有一些預定義的窗位,由NSWindow類中定義的常量指定。您通常使用的級別是:NSNormalWindowLevel,它指定默認級別; NSFloatingWindowLevel,它指定浮動調色板的級別;和NSScreenSaverWindowLevel,它指定屏幕保護程序窗口的級別。您也可以使用NSStatusWindowLevel作爲狀態窗口,或使用NSModalPanelWindowLevel作爲模式面板。如果您需要實施自己的彈出菜單,請使用NSPopUpMenuWindowLevel。剩餘的兩個級別NSTornOffMenuWindowLevelNSMainMenuWindowLevel保留供系統使用。

哦!我很確定你不能在屏幕保護程序上使用任何東西