制作全屏Cocoa应用程序

时间:2009-10-03 04:12:10

标签: objective-c cocoa fullscreen

我想创建一个完整的Screen Cocoa应用程序,但是我的应用程序与传统的全屏应用程序略有不同。

此应用程序将低于其他所有内容,因此位于菜单栏和Dock等下方。它将有一个覆盖桌面和图标的大图像,中间带有自定义NSView,具有表格视图等。这个概念很难理解,这里是一个图像:

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

唯一可能有点令人困惑的部分是背景图片。此背景图片不是计算机的壁纸,而是应用程序的一部分。因此,当应用程序启动时,它将进入全屏模式,并将自身置于停靠栏和菜单栏下方,以及所有其他窗口下方。因此它绘制背景图像以覆盖屏幕(包括桌面和图标)。然后在中间有一个包含我的控件的自定义NSView。

这样做最好的方法是什么?

由于

2 个答案:

答案 0 :(得分:6)

创建一个无边框窗口,即菜单栏屏幕的大小(屏幕0- [NSScreen mainScreen]),位于0,0,窗口级别为kCGDesktopWindowLevel

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

答案 1 :(得分:1)

我认为@Peter Hosey的解决方案应该可行,但是为了使其他窗口处于最佳位置,您可能需要将窗口级别更改为其他窗口。

但是,我恳求你,不要这样做。这将是Macintosh有史以来最糟糕的应用程序。您可以使用许多非常好的用户界面范例,并且“复制”Mac OS X的主桌面界面通常不是其中之一。也就是说,除非你重新实现Time Machine或类似的东西。