制作全屏可可应用程序

问题描述:

我想创建一个完整的屏幕可可应用程序,但是我的应用程序与传统的全屏应用程序稍有不同。制作全屏可可应用程序

这个应用程序将低于一切,所以在菜单栏和Dock等下面。它将有一个大图像覆盖桌面和图标,与中间的一个自定义NSView与表视图等如果这个概念很难理解那么这里是图像:

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

这可能是一个比较混乱的背景图像的一部分。此背景图像不是电脑的壁纸,而是应用程序的一部分。因此,当应用程序启动时,它会进入全屏模式,并将其自身置于底座和菜单栏下方,并位于所有其他窗口下方。所以它绘制背景图像来覆盖屏幕(包括桌面和图标)。然后在包含我的控件的中间有一个自定义的NSView。

要做到这一点,最好的方法是什么?

由于

进行无边界窗口,菜单栏的屏幕大小(屏幕0- [NSScreen mainScreen]),位于(0,0),与窗口水平kCGDesktopWindowLevel

请记住,您需要观察屏幕帧更改通知(当用户更改屏幕尺寸时),并且您应该正确处理无屏幕(无头Mac)的情况。

+1

试过这个,它在一定程度上起作用。问题在于其他窗口(例如Finder窗口和其他应用程序窗口)在我的全屏窗口下方。我需要把它们放在我的全屏窗口上方。任何方式使这项工作? 谢谢 – indragie 2009-10-03 16:06:03

+1

就像我说的,将窗口级别设置为'kCGDesktopWindowLevel'。 – 2009-10-03 20:32:03

我认为@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