我正在创建一个音乐教育应用程序,可以读取乐谱 - 而不是音频文件 - 并且需要呈现动画图形屏幕。我创建了一个基于文档的应用程序,以便轻松访问文件,我现在可以阅读和解析文件,并且我将所有歌曲数据存储在我的Obj-C类中。我的xib中也有一个textview,我可以编写歌曲属性和其他文本花絮。现在我想要第二个视图,它需要是音乐的图形和动画。我是Xcode新手,但有一些openGL经验。我的设置是最新的OS和Xcode版本。
当我尝试将OpenGL视图拖动到IB中的窗口时,我得到一个奇怪的错误/警告,上面写着“不支持的配置 - 启用One Shot内存的NSOpenGLView窗口”(这很奇怪),而openGL视图确实如此我运行应用程序时不会出现。
我在这个网站或其他地方的NSdocuments中找不到太多关于OpenGL Views的引用,这让我觉得我可能会尝试做一些不应该做的事情。有没有人对我有任何建议?我不应该使用基于文档的应用程序吗?我应该使用openGL以外的东西吗?或者我可能需要在这种情况下以编程方式构建openGL View和View Controller 100%?对某些适用的样本/教程的任何建议或指示都将是一个巨大的帮助。
答案 0 :(得分:3)
尝试从Interface Builder中的Windows内存属性中禁用“One Shot”选项。
来自NSWindow文件:
setOneShot:设置窗口管理的窗口设备 当它从屏幕列表中删除时应该被释放。
- (void)setOneShot:(BOOL)oneShot
参数
oneShot YES在窗口设备从屏幕列表中删除时隐藏窗口设备(隐藏) 并在它返回到屏幕时创建另一个;不 重用窗口设备。
讨论
何时释放窗口设备 它从屏幕列表中删除可以节省内存和 NSWindow对象的性能提升,不需要很长时间 显示。它特别适合NSWindow对象的用户 可能会使用一次或两次,但不会持续显示。