3

私はしばらくの間プログラミングを行っていましたが、最近 Mac OS X 向けの開発を開始することを決めたばかりです。この 1 週間で、Objective-C と Cocoa 開発の基本をつかむことができたように感じます。私はグラフィック アプリを作成することを計画しており、現在、Cocoa アプリを介して Quartz コンポジションを制御する方法を学習中です。Apple が提供するチュートリアル (Mac Engravings コンポジションを使用) を実行したところ、問題なく作成できました。学んだことを本当に理解していることを確認するために、独自の構成を作成し、それをもう少し複雑な Cocoa アプリケーションにリンクすることにしました。

基本的に、ムービー ローダー パッチを介してムービーまたは画像をロードするコンポジションがあり、その時点で、フレームを出力する前にさまざまなフィルターをフレームに適用します。私の Cocoa アプリでは、ユーザーが NSOpenPanel オブジェクトを使用してファイルを選択できるようにするコードを作成しました (または、他の Apple の例からコピーして貼り付けました)。選択したファイルのファイルパスは、Interface Builder を使用してアプリのウィンドウに配置したテキスト ボックスに配置されます。上記のテキスト ボックスの値をコンポジションの "Movie_Location" キーにバインドしました。これは、使用している Movie Loader パッチで公開された入力です。しかし、何をやってもこのコンポジションに動画や画像が読み込まれません。

コンポジションに Clear Color パッチを追加し、それを UI のカラーウェルにバインドしたところ、ディスプレイの色が正常に変更されたので、コンポジションと Cocoa アプリが通信していることがわかります。この時点で、何が起こっているのかを把握するために何時間も費やしましたが、ほとんどあきらめました。Movie Loader には、私が気付いていない奇妙な動作がありますか、それとも私が見逃しているような明らかな何かがありますか? 誰からの助けやアドバイスも本当に感謝しています。

これを読んでくれてありがとう...

ベスト、サミ

4

2 に答える 2

0

私は昨日これを理解しました。spudwaffleの2番目のアイデアは、何が起こっていたかです。ファイルパスを入力してEnterキーを押すと、問題なく機能します。バインドを削除し、代わりにパッチコントローラーが提供するsetValue:keyInPath:関数を使用することで、これを正しく機能させることができました。そうは言っても、テキストボックスを強制的に更新する方法はありますか?インスペクターのバインドサブメニュー内に「継続的に更新」などのボタンが表示されたのを覚えていますが、チェックしたコードでも機能しませんでした。

私を助けてくれた皆さんに感謝します!ほんとうにありがとう。

最高、サミ

于 2011-06-16T04:13:58.837 に答える
0

これを行っている理由として、私が考えることができる2つのことがあります。

  1. ファイル パスの形式が正しくありません。バックスラッシュ、コロンなどをチェックしてみてください。
  2. ボックスは値を更新していません。テキスト フィールドを文字どおりクリックして Enter キーを押してみてください。

あなたのクオーツの構成やコードを見なくても、私が考えることができるのはそれだけです。

編集:

一般プロパティで、他の連続ボックスをチェックします。

于 2011-06-15T02:36:16.333 に答える