2011-02-07 109 views
19

我一直试图让我的Mac应用程序进入全屏现在一段时间,但无法让它工作。根据苹果开发者中心,我应该使用enterFullScreenMode:withOptions:这给我,方法enterFullScreenMode找不到。如何使Mac OSX Cocoa应用程序全屏?

到处都是我的谷歌似乎有人与他们的应用程序全屏的问题,那么使它的工作方式是什么?

编辑:

当然enterFullScreenMode的是用于NSView和我用它在一个NSWindow;这不是我想要全屏显示的视图,而是窗口。虽然我找不到NSWindow的任何功能。

+0

使NSWindow的contentView进入全屏。 – hauntsaninja 2011-02-07 14:32:47

+0

我一直在阅读(http://www.cocoabuilder.com/archive/cocoa/201569-nsview-enterfullscreenmode-withoptions-woes-window-levels.html),它看起来像`enterFullScreenMode:withOptions:`是几乎没用,如果你想做任何有用的事情。我认为如果你想控制动画转换,窗口级别,菜单栏/码头取消隐藏等等,我认为你将不得不使用一些Carbon-nastiness。 – 2011-02-07 14:36:31

回答

6

正如在the link Jonathan provided in the comments,enterFullScreen:withOptions:中提到的那样,enterFullScreen:withOptions:有许多缺点,可以让你想把你的头发撕掉。做全屏的最好方法仍然是较老的CGDirectDisplay API。可可开发中心有一个article on fullscreen apps,涵盖几乎所有你需要知道的。

您会注意到这篇文章很古老,开发工具自那时以来发生了很大的变化(Project Builder!啊,美好的旧时光),但代码本身仍然可以工作。

20

Lion有一些新的全屏API。

要使用NSWindow做到这一点,做到这一点

[window setCollectionBehavior: 
      NSWindowCollectionBehaviorFullScreenPrimary]; 

要使用的NSApplication为此做更多这

[[NSApplication sharedApplication] 
     setPresentationOptions:NSFullScreenWindowMask]; 

一点关于它here

12

现代Mac OS X开发人员(使用故事板)只需点击其main.storyboard,选择NSWindow(不是NSWindowController),使用右侧面板查找属性面板(左侧的那个面板看起来像一个拖曳杆的东西)寻找“全屏”,并选择“主窗口”,而不是其默认值“不支持”。如果这是你想要的,你也可以设置辅助窗口。

不要反对改变,使用故事板。我们中的一个...我们中的一个...

0
[self.view setFrame:[[NSScreen mainScreen] visibleFrame]];