2010-12-05 5 views
0

Dockアイコンにマウントされたボリュームのドロップを受け入れる必要のあるCocoaアプリケーションを作成しています。ドキュメントベースではありません。 application:openFilesの適切なハンドラに各ボリュームをディスパッチするつもりです。Dockアイコンのボリュームドロップを受け入れる

ドラッグのためにアプリケーションのタイルを点灯させましたが、ドロップすると、アプリケーションに警告が表示されます。「ドキュメント[ボリューム名]を開くことができませんでした。 [私のアプリケーション]はこのタイプのファイルを開くことができません。 "私のapplication:openFiles:メソッドは実行されません。ただし、デリゲートが接続され、他のデリゲートメッセージが送信されます。

Dockタイルに音量を落とすにはどうすればよいですか?

答えて

2

Info.plistが正しく設定されていない可能性があります。

CFBundleDocumentTypes =  (
    { 
     LSItemContentTypes =    (
      "public.volume" 
     ); 
    } 
); 

か、事前に10.5をサポートする必要がある場合は、代わりにCFBundleOSTypesdiskを使用することができます。これは、このようなものを含める必要があります。

これを行うことで、application:openFiles:を取得できました。あなたはすでにそれをやっている場合は

、それはおそらくなど、死んだ鶏を振る、lsregisterを使用し、別のユーザーアカウントをしようと、きれいな...サービスは混乱起動して、プロジェクトを再構築しています

+0

私は 'com.apple.mount-point'でそれを持っていて、ドラッグを無視しました。それを取り除いて 'OSType'の 'ディスク'だけを残しておけば、タイルをどのように点灯させるのですか?私は 'public.volume'でそれを試し、何が起こるかを教えてあげます。 –

+0

あなたは完全に正しいです。完全な更新については私の答えを見てください。 –

0

...デリゲートが接続され、他のデリゲートメッセージが送信されます。

そう思った。

Mea culpa-私は、実際には、代議員を作成していませんでした。なぜ私が持っていると思ったのか分かりません。

MainMenuペンでデリゲートをインスタンス化して接続し、Info.plistの変更をNicholas Rileyさんが提案したので、ドロップが機能するようになりました。

関連する問題