我一直在尝试让我的Mac应用程序进入全屏模式,但是无法使其正常工作。根据苹果开发者中心的说明,我应该使用enterFullScreenMode:withOptions:方法,但是显示该方法未找到。
我在Google上搜索到很多人都有制作应用程序全屏的问题,那么应该如何解决呢?
编辑:
当然enterFullScreenMode
是针对NSView
的,而我却将其用于NSWindow
上;我想要全屏的不是视图,而是窗口。但是我找不到NSWindow
的任何函数。
我一直在尝试让我的Mac应用程序进入全屏模式,但是无法使其正常工作。根据苹果开发者中心的说明,我应该使用enterFullScreenMode:withOptions:方法,但是显示该方法未找到。
我在Google上搜索到很多人都有制作应用程序全屏的问题,那么应该如何解决呢?
编辑:
当然enterFullScreenMode
是针对NSView
的,而我却将其用于NSWindow
上;我想要全屏的不是视图,而是窗口。但是我找不到NSWindow
的任何函数。
Lion有一些新的API可以用于全屏。
要使用NSWindow实现全屏,按照以下步骤进行:
[window setCollectionBehavior:
NSWindowCollectionBehaviorFullScreenPrimary];
要使用NSApplication实现此操作,请执行以下操作
[[NSApplication sharedApplication]
setPresentationOptions:NSFullScreenWindowMask];
关于此问题的更多信息,请点击这里。
现代的Mac OS X开发人员(使用Storyboard)只需单击其main.storyboard,选择NSWindow(而非NSWindowController),使用右侧面板查找属性面板(在标尺左侧,看起来像一个拖动条),查找“全屏”并选择“主窗口”,而不是其默认值“不支持”。您也可以设置辅助窗口,如果这是您想要的。
不要抵制变化,使用Storyboard。我们之中的一员......
正如Jonathan在评论中提供的链接所述,enterFullScreen:withOptions:
存在许多缺点,这可能会让你抓狂。最好的全屏方法仍然是老旧的CGDirectDisplay API。Cocoa Dev Central有一篇关于全屏应用程序的文章,几乎涵盖了您需要了解的所有内容。
您会注意到该文章非常古老,而且自那时以来开发工具已经发生了很大变化(Project Builder!啊,那些美好的日子),但代码本身仍然可用。
[self.view setFrame:[[NSScreen mainScreen] visibleFrame]];
[[window contentview] enterFullScreenMode:[NSScreen mainScreen] withOptions:nil];
,您就可以像正常的 NSView 一样做任何事情,包括添加 CoreAnimation 层和 OpenGL 层/视图。 - hauntsaninja