ドラッグアンドドロップ操作でオブジェクトへのポインタを渡すことは可能ですか?
これがシナリオです...
カスタムオブジェクトの「NSArray」があります。議論のために、これは人物オブジェクトのリストであると言います。
NSTableView
リストは、を介して関連付けられていNSArrayController
ます。はNSTableView
ドラッグソースでありNSView
、ドラッグ先としてあります。
NSArrayController
ドラッグアンドドロップを実装すると、ドラッグプロセスでとして現在選択されている人の名前を簡単に取得しNSString
、のレシーバーに渡すことができますNSView
。
ただし、受信者がオブジェクト全体にアクセスできるように、personオブジェクトへのポインターを渡すことができるようにしたいと思います。
問題は、ドラッグ操作によって人物オブジェクトの新しいインスタンスが作成され、人物モデルに必要なメソッドを実装しているにもかかわらず、選択した人物オブジェクトへの参照が作成されないことです。その結果、宛先で人物オブジェクトを取得しましたが、オブジェクトからのデータが入力されていません。
NSView
NSViewは、オブジェクト自体への更新がと(およびオブジェクトが使用される他のすべての場所)の両方に反映されるようにオブジェクト参照を利用するため、理想的にはオブジェクトポインターが必要ですNSTableView
。
ドラッグアンドドロップ操作でオブジェクト参照を使用することも可能ですか、それとも人物オブジェクトのiVarであるカスタム参照を渡し、宛先に到着したらルックアップを実行する必要がありますか?(これは、Obj-cを参照するオブジェクトの量を考えると少し古風に思えます)。
ターゲットがアプリケーションの外部からドラッグ操作を受け入れることができることを理解していますが、ローカル操作として操作を指定すると、これが考慮されますか?
アップルのドキュメントを確認しましたが、まだ答えが見つからないようです。
ありとあらゆる助けが大いに感謝されます。