1

キューブを含む Quartz コンポジションがあり、X/Y/Z 回転入力が公開されています。Interface Builderで、以前の Quartz コンポジションをロードしてaQCViewと aを作成しました。QCPatchControllerPatch ControllerではQCViewバインドされており、回転公開ポートも threeNSSliderにバインドされているため、 の値を変更するとNSSlider'sキューブが回転します。

これはすべて正常に機能しますが、XCode の App Delegate からキューブの回転値を変更したいと考えています。それらを指している IBOutletsの値を変更しようとしNSSlidersましたが、この変更は、マウスでスライダーを直接変更したときのように、キューブには適用されません。

何をインスタンス化する必要がありますか、および/または を通じてこれにアクセスして変更するInput_Ports.value方法はCQPatchController?

読んでくれてありがとう、私は本当に助けが必要です!

4

1 に答える 1

0

それは実際には非常に簡単です!パッチ コントローラは KVC を問題なく受け入れsetValue:forKeyPath:ます。(目的のキー パスは、おそらく のようになりますpatch.Input_Ports.value。)

パッチ コントローラーに接続するには、アプリ デリゲートにアウトレットを追加する必要があります。アプリ デリゲートの .h ファイルに、インスタンス変数を追加しますIBOutlet NSObjectController* patchController

IBOutletコンパイラには何もしませんが、そこにアウトレットがあることを Interface Builder に通知します。その行を追加したら、Interface Builder に戻り、アプリ デリゲートからパッチ コントローラーにコントロール ドラッグして、patchController アウトレットを .nib ファイル内の特定のインスタンスに接続できるようになります。

(QCPatchController の .h ファイルはありませんが、NSObjectController のサブクラスであるため、安全に宣言できます。)

于 2010-04-03T15:52:46.420 に答える