2010-04-03 5 views
1

У меня есть кварцевая композиция с кубом, а также входы вращения X/Y/Z. В интерфейсе Builder я сделал QCView и QCPatchController с предыдущей композицией кварца. В QCView контроллер Patch привязан, а опубликованные порты вращения также привязаны к трем NSSlider, поэтому, когда я изменяю значение NSSlider's, тогда куб вращается.Взаимодействие кода с кварцевой композицией

Все это прекрасно работает, но я хочу изменить значения вращения куба из приложения-делегата на XCode. Я попытался изменить значение NSSliders с помощью IBOutlets, указывающих на них, но это изменение не относится к кубу, как это происходит при смене слайдеров непосредственно с помощью мыши.

Что мне следует предпринять и/или как получить доступ и изменить это? Input_Ports.value через CQPatchController?

Большое спасибо за чтение, мне очень нужна помощь!

ответ

0

Это на самом деле довольно просто! Контроллер патча будет принимать KVC setValue:forKeyPath: просто отлично. (Желаемый путь ключа, вероятно, будет выглядеть как patch.Input_Ports.value.)

Чтобы подключиться к контроллеру плагинов, вам нужно добавить выход к делегату приложения. В файле .h файла вашего делегата приложения добавьте переменную экземпляра IBOutlet NSObjectController* patchController.

IBOutlet ничего не делает для компилятора, но он сигнализирует Interface Builder, что там есть розетка. После того, как вы добавите эту строку, вы сможете вернуться к интерфейсу Builder и перетащить управление с вашего делегата приложения на ваш контроллер патчей, таким образом подключив выход patchController к определенному экземпляру в вашем .nib-файле.

(Там нет .h файла для QCPatchController, но это подкласс NSObjectController, так что вы можете смело объявить его как таковые.)

+0

Вот что я пытался, но как я получить доступ к экземпляру контроллера патча, заявили в Interface Builder, из кода приложения XCode App Delegate? Я знаю, что это может быть много новичков, но я на самом деле ... Спасибо за ваш ответ! –

+0

Пуф, я добавил информацию о торговых точках. Попытайтесь рассказать о себе и назвать свой вопрос в следующий раз, чтобы он действительно фокусировался на конкретной части проблемы, с которой вы столкнулись. (На этот раз, возможно, «Доступ к экземплярам в файлах nib программно» было бы лучше, так как вопрос не был специфичным для Quartz Composer. Или, если вы знали термин «Добавление IBOutlet».) – andyvn22

+0

Да, мне нужно чтобы узнать, возможно ли такое instanciation, и я знаю, что механизм IBoulet, но XCode не recongnice класс QCPatchController, и я не знаю, что импортировать. Я пробовал #import и другие известные библиотеки/фреймворки без везения. Какая потребность в импорте? –

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