qtviewをのせたwindowをマウスで移動させる方法です。
今のままフルスクリーンにしてもデュアルモニタにした画面に持っていけないので、操作ができなくなってしまい不便です。
そのため、qtviewをのせたwindwをマウスのドラッグで自由に動かせる様にします。
xcodeのqtwin.mに下記を追加します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
- (void)mouseDragged:(NSEvent *)theEvent
{
NSPoint current_mouse;
NSPoint neworigin_mouse;
// グローバルマウス座標を得る
current_mouse = [ self convertBaseToScreen:
[ self mouseLocationOutsideOfEventStream ]];
// ウインドウの原点の位置を計算する
neworigin_mouse.x = current_mouse.x - _initialLocation.x;
neworigin_mouse.y = current_mouse.y - _initialLocation.y;
// ウインドウの位置を補正
[ self setFrameOrigin:neworigin_mouse ];
}
- (void)mouseDown:(NSEvent *)theEvent
{
// マウスクリックした場所をローカル座標で記録
_initialLocation = [ theEvent locationInWindow ];
}
ーーーーーーーーーーーーーーーーーーーーーーーー
(@endを忘れずに)
保存してインターフェースビルダーに戻り、qtviewをのせたwindowの上に
CustamViewオブジェクトをドロップアンドドラッグでのせます。
ビルドするとqtvieをのっけたwindowが動かせるようになります。
[quartzcomposerへの操作 ]
コントロールwindow上にpart1で設定しておいたquartzcomposerへの操作を追加します。
インターフェースビルダー上にスライダーを置きxcodeのBindingsという機能を使ってその値
をqtviewに読み込まれているquartzcomposerに渡します。
1、インターフェースビルダー上のcocoa-Controlからwindowにスライダーをおきます。
2、スライダーの値を設定します。1.0~0.0の間で動くようにします。
デフォルトでは、Continuosuly send 〜というスライダーを動かしている間、
数値を送り続けるという設定がオフになってるのでonにしてあげないとあれ?という事になります。
3.NStextfieldをおき、スライダーと繋ぎます。(コントロールを押しながらスライダーをクリックしtextfield上まで動かし、マウスを離します)
Targetタブをクリックし、takeFloatValuefromを選択して、connectを押します。
qtviewを選択して、inspecterを出し、Bind toをQCPatchControllerを選び、Controller keyをpatchと入力します。

スライダーを選択して、inspecterを出しBindingを選び、
1.Bind toをQCPatchControllerを選び、Controller keyをpatchと入力します。
2.Model key path として、quartzcomposerで作ったパラメーターを入力します。
b.valueにしました。
同じようにスライダーを置き、quartzcomposerでbinding設定したパラメーターを設定していきます。
これでひとまず、終了です。
part4のサンプル

