在NSDocument(OS X)中创建NSOpenGLView

时间:2013-10-14 23:36:00

标签: osx-mountain-lion nsdocument nsopenglview

我正在创建一个音乐教育应用程序,可以读取乐谱 - 而不是音频文件 - 并且需要呈现动画图形屏幕。我创建了一个基于文档的应用程序,以便轻松访问文件,我现在可以阅读和解析文件,并且我将所有歌曲数据存储在我的Obj-C类中。我的xib中也有一个textview,我可以编写歌曲属性和其他文本花絮。现在我想要第二个视图,它需要是音乐的图形和动画。我是Xcode新手,但有一些openGL经验。我的设置是最新的OS和Xcode版本。

当我尝试将OpenGL视图拖动到IB中的窗口时,我得到一个奇怪的错误/警告,上面写着“不支持的配置 - 启用One Shot内存的NSOpenGLView窗口”(这很奇怪),而openGL视图确实如此我运行应用程序时不会出现。

我在这个网站或其他地方的NSdocuments中找不到太多关于OpenGL Views的引用,这让我觉得我可能会尝试做一些不应该做的事情。有没有人对我有任何建议?我不应该使用基于文档的应用程序吗?我应该使用openGL以外的东西吗?或者我可能需要在这种情况下以编程方式构建openGL View和View Controller 100%?对某些适用的样本/教程的任何建议或指示都将是一个巨大的帮助。

1 个答案:

答案 0 :(得分:3)

尝试从Interface Builder中的Windows内存属性中禁用“One Shot”选项。

来自NSWindow文件:

  

setOneShot:设置窗口管理的窗口设备   当它从屏幕列表中删除时应该被释放。

     

- (void)setOneShot:(BOOL)oneShot

     

参数

     

oneShot YES在窗口设备从屏幕列表中删除时隐藏窗口设备(隐藏)   并在它返回到屏幕时创建另一个;不   重用窗口设备。

     

讨论

     

何时释放窗口设备   它从屏幕列表中删除可以节省内存和   NSWindow对象的性能提升,不需要很长时间   显示。它特别适合NSWindow对象的用户   可能会使用一次或两次,但不会持续显示。