- ベストアンサー
Xcode ドラッグでファイルをコピーするアプリ
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 正直初心者の為(1)も(2)わからない状況です。 それでは、「丸投げ」に近いですね。こういうところでは、いちばん嫌われる質問のしかたです。 こちらからも正直申し上げると、ドラッグ&ドロップだけでも、ちょっと軽いめまいがするほど、説明がたいへんなジャンルで、ご自身でどこまで調べたのか、どの部分をアドバイスすれば、あとは自力でできるようになるのか、と思っているところに、「調べたところドラッグ&ドロップの処理には「NSDragOperation」というクラスを使うような気がする。」では、さじを投げざるを得ません。 あなたは、日頃のMacの操作で、ドラッグ&ドロップをよくお使いだと思います。その日頃の操作を、プログラマの目で見直してみましょう。 まず、ドラッグできるアイテムは、ファイル・フォルダアイコンだけではありません。選択したテキスト、画像、GarageBandでは、オーディオデータの断片も、ドラッグできます。そして、ドロップしたときの挙動も一様ではありません。画像ファイルのアイコンをドロップした場合、ファイル名がドロップされる、ファイルパスがドロップされる、画像がドロップされるなど、アプリケーションによりさまざまです。 これだけみただけでも、ドラッグ&ドロップのプログラムが、相当めんどくさいものになりそうなことは、じゅうぶん推察できます。そして、じっさいたいへんなんです。 > 2.調べたところドラッグ&ドロップの処理には「NSDragOperation」というクラスを使うような気がする。 じっさいは「NSDraggingDestination Protocol」を、主に使います。 Drag and Drop Programming Topics for Cocoa Receiving Drag Operations http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DragandDrop/Tasks/acceptingdrags.html#//apple_ref/doc/uid/20000993-BABHHIHC ADCサイトのリンクですが、まったくおなじものをXcodeのヘルプで読むことができます。 > 3.調べたところファイルコピーの処理には「NSFileManager」というクラスを使うような気がする。 これはそのとおりです。 NSFileManager *fm = [NSFileManager defaultManager]; これでNSFileManagerのインスタンスを取得して、操作します。 > 4.チェックボックスの部分は条件分岐の処理が必要な気がする。 条件分岐でやってもかまいませんが、使わなくてもできます。NSArrayで、チェックボックスとファイルパスを管理すればいいでしょう。
その他の回答 (1)
- harawo
- ベストアンサー率58% (3742/6450)
どこがわからないのか、的を絞って、質問なさるべきでしょう。 (1) ドラッグ&ドロップの処理。 (2) ファイルコピーの処理。 すくなくともどちらがわからないのか、それともどちらもわからないのかは説明すべきです。 (まあ、(2)なら、「書籍やネットで調べてもなかなかやり方がわかりません。」ということにはならないはずですが)
お礼
harawo様 ご回答ありがとうございます! 的を絞らず、質問をしてしまい大変もうシ訳ありませんでした。 正直初心者の為(1)も(2)わからない状況です。 もう少し詳しく今の状況を説明しますと、 1.Interfacebuilderでパーツの配置はできる。 2.調べたところドラッグ&ドロップの処理には「NSDragOperation」というクラスを使うような気がする。 3.調べたところファイルコピーの処理には「NSFileManager」というクラスを使うような気がする。 4.チェックボックスの部分は条件分岐の処理が必要な気がする。 2~4の部分の具体的なコードやボタンとコードとの関連づけなどがはっきりとわからず、同じような処理をしている書籍やサイトがあれば参考にできるのですが、なかなか見つけられない状況となっています。
お礼
harawo様、あまりにも丸投げすぎであり、説明が大変な事を軽々しく質問し、不快な思いをさせてしまい、本当に申し訳ございませんでした。深くお詫び申し上げます。そして、そんな私の質問にも真摯にお答え頂き、感謝の気持ちでいっぱいです。本当にありがとうございます。 頂いたご回答は英語という事もあり、初心者の私には理解するのにはまだまだ時間がかかると思いますが、考えが行き詰まっていた自分にとってとても大きなきっかけとなりました。今後は頂いた回答を理解できるまでじっくりと勉強させていただきます。また、どうしても解らない時は質問させて頂くかもしれませんが、その時はお力添えを頂ければ幸いです。それでは、長々と申し訳ございませんでした。本当にありがとうございました。