2013-10-14 49 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對象,用戶 可能會使用一次或兩次,但不會持續顯示。