2009-10-03 97 views
3

我想創建一個完整的屏幕可可應用程序,但是我的應用程序與傳統的全屏應用程序稍有不同。製作全屏可可應用程序

這個應用程序將低於一切,所以在菜單欄和Dock等下面。它將有一個大圖像覆蓋桌面和圖標,與中間的一個自定義NSView與表視圖等如果這個概念很難理解那麼這裏是圖像:

http://img10.imageshack.us/img10/6308/mockupo.png

這可能是一個比較混亂的背景圖像的一部分。此背景圖像不是電腦的壁紙,而是應用程序的一部分。因此,當應用程序啓動時,它會進入全屏模式,並將其自身置於底座和菜單欄下方,並位於所有其他窗口下方。所以它繪製背景圖像來覆蓋屏幕(包括桌面和圖標)。然後在包含我的控件的中間有一個自定義的NSView。

要做到這一點,最好的方法是什麼?

由於

回答

6

進行無邊界窗口,菜單欄的屏幕大小(屏幕0- [NSScreen mainScreen]),位於(0,0),與窗口水平kCGDesktopWindowLevel

請記住,您需要觀察屏幕幀更改通知(當用戶更改屏幕尺寸時),並且您應該正確處理無屏幕(無頭Mac)的情況。

+1

試過這個,它在一定程度上起作用。問題在於其他窗口(例如Finder窗口和其他應用程序窗口)在我的全屏窗口下方。我需要把它們放在我的全屏窗口上方。任何方式使這項工作? 謝謝 – indragie 2009-10-03 16:06:03

+1

就像我說的,將窗口級別設置爲'kCGDesktopWindowLevel'。 – 2009-10-03 20:32:03

1

我認爲@Peter Hosey的解決方案應該可以工作,但爲了讓其他窗口進入最佳狀態,您可能需要將窗口級別更改爲其他值。

但是,我懇求你,不要這樣做。這將是Macintosh有史以來最糟糕的應用程序。有很多非常好的用戶界面範例可供您使用,而「複製」Mac OS X的主桌面界面通常不是其中之一。也就是說,除非你正在重新實現Time Machine或類似的東西。

+0

這不能用作普通的OS X應用程序。我使用它作爲基本的桌面替代品,用作緊急磁盤(沒有Finder或Dock,因此我需要創建自己的界面)的最小版本的OS X。我試圖將窗口級別設置爲NSDockWindowLevel,但它似乎沒有效果。 – indragie 2009-10-03 17:13:51

+0

想象出來:)將窗口級別設置爲-1,現在它顯示在所有其他窗口的下方:D。 – indragie 2009-10-03 17:31:17