1

私のアプリで、既存のファイルタイプの「OpenIn..」機能をサポートしたいと思います。

ただし、このファイルタイプにはUTIがありません。

ターミナルでmdlsを実行すると、次の結果が得られました。

kMDItemContentType             = "dyn.ah62d4rv4ge80c25t"

kMDItemContentTypeTree         = (
    "public.data",
    "public.item"
)

その情報を与えられて、私は私のplistに追加しました:

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>extension</string>
            </array>
            <key>LSHandlerRank</key>
            <string>Alternate</string>
            <key>CFBundleTypeRole</key>
            <string>Viewer</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.data</string>
                <string>public.item</string>
            </array>
        </dict>
    </array>

ただし、これは「拡張機能」を無視し、任意のデータファイルに対して「OpenIn..」を有効にするようです。

これを防ぐ方法はありますか?

4

1 に答える 1

1

Info.plistでUTIを定義できます。これがあなた自身の作成の拡張のためであるならば、それを作り、それを「エクスポートされたタイプUTI」の下に置いてください。既知のタイプのファイル用であるが、UTIがよく知られていない場合は、Info.plistの[インポートされたタイプのUTI]セクションに配置できます。いずれの場合も、このUTIを[ドキュメントタイプ]セクションで参照できるようになりました。

于 2012-10-15T22:21:44.670 に答える