2013-10-14 51 views
2

我正在创建一个读取乐谱的音乐 - 教育应用程序 - 而不是音频文件 - 并且需要呈现动画图形屏幕。我创建了一个基于文档的应用程序,使文件访问变得简单,现在我已经阅读和分析这些文件,并将所有歌曲数据存储在我的Obj-C类中。我在我的xib中也有一个textview,可以将歌曲属性和其他文本花絮写入。现在我想要第二个视图,这个视图需要图形和动画,用于音乐。我是一个Xcode新手,但有一些OpenGL的经验。我的设置是最新的操作系统和Xcode版本。在NSDocument中创建NSOpenGLView(OS X)

当我试图拖动OpenGL视图到IB的窗口时,出现一个奇怪的错误/警告,提示“不支持的配置 - 在One Shot内存启用窗口中的NSOpenGLView”(这很奇怪),以及openGL视图在我运行应用程序时不会出现。

我找不到在这个网站或任何其他地方的NS文档中的OpenGL Views多引用,这让我想我可能会试图做一些不该做的事情。有人对我有任何建议吗?我应该不使用基于文档的应用程序吗?我应该使用openGL以外的东西吗?或者,也许我需要在这种情况下以编程方式构建openGL视图和视图控制器100%?任何建议或指向一些适用的样本/教程将是一个巨大的帮助。

回答

3

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

从NSWindow文档:

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

- (void)setOneShot:(BOOL)oneShot

参数

ONESHOT是当它从屏幕列表(隐藏)删除以释放窗口的窗口设备 ,创造一个又一个,当它返回到屏幕上;否到 重新使用窗口设备。

讨论

时 它从屏幕列表中删除可能导致节省内存和不长的时间来 显示NSWindow对象 性能改善从而释放窗口的设备。对于NSWindow对象,用户 可能会使用一次或两次,但不会持续显示。