2013-10-14 2 views
2

Я создаю приложение музыкального eduaction, которое читается в музыкальных партитурах, а не аудиофайлах, - и вам нужно будет отобразить анимированный графический экран. Я создал приложение на основе документов, чтобы упростить доступ к файлам, и теперь у меня есть его чтение и разбор файлов, и у меня есть все данные песен, хранящиеся в моих классах Obj-C. У меня также есть textview в моем xib, что я могу писать атрибуты песен и другие текстовые лакомые кусочки. Теперь я хочу второе представление, которое должно быть графическим и анимационным, для музыки. Я новичок Xcode, но имею некоторый опыт openGL. Моя настройка - это новейшие версии ОС и Xcode.Создание NSOpenGLView внутри NSDocument (OS X)

Когда я пытаюсь перетащить OpenGL View в мое окно в IB, я получаю странную ошибку/предупреждение, в котором говорится: «Неподдерживаемая конфигурация - NSOpenGLView в окне с включенной поддержкой One Shot» (так что это странно), и представление openGL не появляется при запуске приложения.

Я не могу найти много ссылок на OpenGL Views в NSdocuments на этом сайте или где-либо еще, что заставляет меня думать, что я пытаюсь сделать что-то, что не должно быть сделано. У кого-нибудь есть совет для меня? Не следует ли использовать приложение на основе документов? Должен ли я использовать что-то другое, чем openGL? Или, может быть, мне нужно создать openGL View and View Controller на 100% программно в этом случае? Любые советы или указатели на некоторые применимые образцы/учебные пособия будут огромной помощью.

ответ

3

Попробуйте отключить параметр «Один выстрел» из атрибутов памяти Windows в Interface Builder.

Из NSWindow документации:

setOneShot: Устанавливает ли устройство окна, окно управляет должно быть освобождено, когда он удаляется из списка экрана.

- (void)setOneShot:(BOOL)oneShot

Параметры

ONESHOT ДА, чтобы освободить устройство окна окна, когда он удаляется из списка экрана (скрытый) и создать еще один, когда он вернулся на экран; NO to повторное использование оконного устройства.

Обсуждение

Избавление устройства окна, когда он удаляется из списка экрана может привести к экономии памяти и повышения производительности для объектов NSWindow, которые не займут много времени, чтобы дисплея. Это особенно подходит для объектов NSWindow, которые пользователь может использовать один или два раза, но не постоянно отображаться.

Смежные вопросы