私はこの問題で数日間壁にぶつかっていますが、何が間違っているのか(またはこれが何らかのバグである場合)、一生理解できません。
私はカスタム Mac アプリケーションを持っています (問題があれば Java で)。基本的に、特定の種類のドキュメント バンドルを取得し、それに対して何らかの処理を行い、結果をサーバーに送信します。ユーザーが「ファイル」をアプリケーションのドックアイコンにドロップするという1つのユースケースを除いて、すべてが機能しています。
私がこれまでに読んだことはすべて、Mac Dock アイコンにドロップすると、Finder が使用するものと同じ Launch Services を使用することを示しているようです。それでも、Applications ディレクトリを開いてそこにアプリケーションをドロップすることはできますが、Dock にアプリケーション アイコンをドロップしても何も起こりません。
だから、私がこれまでに試したことのいくつかの詳細:
- アプリは、*.foo 拡張子を持つドキュメントを処理します。これはドキュメント バンドルです (つまり、opt-click で [パッケージの内容を表示] オプションが表示されます)。
- ドキュメントには、UTI com.apple.package および public.composite-content に準拠する org.example.foo の UTI があります (所有者アプリケーションの Info.plist エクスポート タイプ UTI キーからコピーされたすべての情報)。
- Info.plist は、インポートされたタイプの UTI (UTImportedTypeDeclarations キー) でこのドキュメント タイプを宣言します。
- また、Info.plist では、UTI が Document Types (CFBundleDocumentTypes キー) で宣言されています。
- CFBundleTypeExtensions には「foo」が含まれます
- 「****」に設定された CFBundleTypeOSTypes
Dock アイコンでの Cmd-Opt-drop (ドロップを強制する) は何もしません。Finder でのドロップは、期待どおりに機能します。したがって、これは特に Dock アイコンをドロップする際の問題のようです。
何を変更するかについてのアイデアはありますか?