高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1220
Re-enabling dragging from NSTableView to other applications


Q: アプリケーションを Mac OS X v10.2 でリビルドしたら、NSTableView でほかのアプリケーションへのドラッグ&ドロップ機能が使用できなくなってしまいました。どうしたら直せますか?

A: Mac OS X v10.2 以降の NSTableView に含まれるバグが原因で、アプリケーション開発者がコードを追加しないと、アプリケーション間のドラッグが機能しなくなりました。同一アプリケーション内でのドラッグ&ドロップは引き続き正常に機能します。
NSTableView をサブクラス化し、-dragginSourceOperationMaskForLocal: をオーバーライドして、適切な NSDragOperation(一般的には NSDragOperationCopy。どのようなドラッグ操作をドラッグ&ドロップで実行したいかによります)処理を返すようにすることで、このバグを回避できます。Mac OS X v10.2.x でビルドされたアプリケーションだけが対象となり、v10.1.x でビルドされたものは対象外となります。このバグは Mac OS X の今後のバージョンで修正される予定であり、バグが修正されたかどうかは、この Q&A をリリースごとにチェックして判断することができます。


[2002 年 12 月 2 日]