NSImageView のインスタンスがあります。ユーザーがこのビューに画像を貼り付けたりドラッグしたりできるように InterfaceBuilder に指示しました。これは機能します。ただし、NSImageView または関連ドキュメントには、これが実際に発生したときに通知を受け取る方法がありません。デリゲートか何かを期待していましたが、見つかりませんでした。何か案は?
2 に答える
1
これがCocoaBindingsが最も得意とすることです。
ビューと通信する代わりに、値が画像であるプロパティを設定し、画像ビューのimage
バインドをそれにバインドします。次に、画像ビューで画像を自分で変更する場合は、プロパティの値を設定するだけで、画像ビューが変更を認識します。
ユーザーが画像ビューに貼り付けたりドラッグしたりすることは基本的に同じですが、部分的に逆になります。貼り付けまたはドロップによって画像ビューの値が変更され、プロパティの値が設定されます。これにより、他のプロパティがバインドされます。変更に気づき、以前と同じように新しい値を取得します。
既存のsend-explicit-messages-to-viewsコードを削除することを除けば、これにはコード作業はほとんど必要ありません。必要なコードはプロパティ用だけです。IBでバインディングを接続します。
Key-ValueコーディングプログラミングガイドおよびCocoaバインディングプログラミングトピックを参照してください。
于 2010-03-21T00:59:19.707 に答える
0
私にとっては、関数をオーバーライドするより良い方法
-(void)paste:(id)送信者
ただし、NSResponder を親として持つ NSView ベースのクラスにある場合のみ
于 2018-10-02T17:24:12.607 に答える