0

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

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

では、Dockタイルへのボリュームのドロップを受け入れる正しい方法は何ですか?

4

2 に答える 2

2

おそらくあなたInfo.plistは正しく設定されていません。次のようなものを含める必要があります。

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

または、10.5より前をサポートする必要がある場合はCFBundleOSTypes、代わりにを使用できます。disk

こうすることで仕事に取り掛かることができましたapplication:openFiles:

すでにそれを行っている場合は、Launch Servicesが混乱している可能性があります...プロジェクトをクリーンアップして再構築し、別のユーザーアカウントを試し、使用しlsregister、死んだ鶏を振るなど。

于 2010-12-05T22:30:26.883 に答える
0

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

またはそう思った。

Mea culpa —実際、私は代理人を作成していませんでした。なぜ私が持っていたと思ったのかわかりません。

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

于 2010-12-05T23:23:33.983 に答える