カスタム ファイル タイプの Finder アプリケーションにコンテキスト メニュー項目を追加する必要があります。そこで、Apple Automator を使用してサービスを作成しました。NSSendFileTypes で public.data を指定すると、すべての種類のファイルでコンテキスト メニュー項目が正常に表示されますが、アプリケーションの info.plist で指定された UTI を使用すると、定義済みのカスタム ファイル タイプでは機能しません。Finderコンテキストメニュー項目サービスにカスタムUTIフィルタリングを使用できるかどうかを示唆するのに役立つ人はいますか?
これは、サービス ワークフロー ファイルの info.plist ファイルです。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSServices</key>
<array>
<dict>
<key>NSMenuItem</key>
<dict>
<key>default</key>
<string>MyService</string>
</dict>
<key>NSMessage</key>
<string>runWorkflowAsService</string>
<key>NSRequiredContext</key>
<dict>
<key>NSApplicationIdentifier</key>
<string>com.apple.finder</string>
</dict>
<key>NSSendFileTypes</key>
<array>
<string>com.myapp.anytype</string>
</array>
</dict>
</array>
</dict>
</plist>
これは、私のアプリケーションの info.plist からの UTI 宣言コードです。
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.archive</string>
</array>
<key>UTTypeDescription</key>
<string>Any type file format</string>
<key>UTTypeIdentifier</key>
<string>com.myapp.anytype</string>
<key>UTTypeReferenceURL</key>
<string>http://myapp.com</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>anytype</string>
</array>
</dict>
</dict>
</array>
そのタイプのファイルに対して推奨されるアプリのリストに自分のアプリケーションが表示されるので、宣言は正しいと思います。