1

ドキュメントベースのCocoaアプリケーションでは、処理されるファイル拡張子はアプリケーションのInfo.plistファイルに一覧表示されます。

私が構築しているアプリケーションには、開くファイルの種類ごとにロード可能なバンドルが必要です。そのため、バンドルの存在により、アプリケーションが特定のファイルタイプを処理するものとして登録する方法を変更したいと思います。

例として、HTML.bundleがインストールされている場合、私のアプリケーションはHTMLドキュメントを開くことを許可する必要がありますが、バンドルがない場合は許可しないはずです。

アプリケーションレベルの設定である必要がありますか、それともアプリケーション用にインストールされたバンドルを介して配布できますか?

ドキュメントベースのアプリケーションのInfo.plistで「ドキュメントタイプ」を参照しています。

4

1 に答える 1

1

アプリケーション内からInfo.plistファイルを書き直す必要があります。

if (bundle_installed(@"HTML.bundle")) {
    NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:PATH_TO_PLIST];

    /* add/remove things to/from dict here */

    [dict writeToFile:PATH_TO_PLIST atomically:YES]; // atomically is important! Must be YES!!
}

これは実装が非常に簡単ですが、makeが変更を実行するには、アプリを再起動する必要があります。


Resources何か問題が発生した場合に備えて、バックアップInfo.plistをディレクトリに追加する必要があります。

于 2010-10-23T12:07:05.293 に答える