2011-12-19 8 views
0

Xcode 4.1でPreferencePaneを開発していますが、設定値をcom.apple.systempreferences以外のものに保存できないようです.plist。Cocoa PreferencePaneユーザーのデフォルトは常にcom.apple.systempreferences.plistに保存されます

MyApp-Info.plistファイルで自分のアプリのバンドルIDを設定しましたが、これは選択されていないようです。

私は広範に検索しましたが、何も見つかりませんでした。次のように簡単に問題を複製することができます。

Xcodeで

  1. 新しいPreferencePaneプロジェクト
  2. を共有ユーザーに.xib
  3. バインドするために、テキストフィールドの値をNSTextFieldを追加作成します。任意のキー名を持つデフォルトコントローラ
  4. プロジェクトをビルド
  5. 製品のアイコンを右クリックし、[Open with External Editまたは」システム環境設定(このユーザーのみ)システム環境設定で

にインストールするには:

  1. はあなたの県のペインを開き、テキストボックスに任意の値を入力します。
  2. お好みの値は〜/ライブラリ/ Preferences/com.apple.systempreferences.plist

に保存されている。しかし、なぜそれがあなたの指定されたバンドル識別子を持つ新しいplistファイルを作成し、保存していないことを参照してください。そこの嗜好価値?

これはXcode 4.1/Mac OS 10.7のバグですか?どんな助けも大変ありがとう!

答えて

2

あなたのバンドルIDのデフォルトをアクセスするためにNSUserDefaultsを使用することができます。

[[NSUserDefaults standardUserDefaults] persistentDomainForName:@"yourBundleID"]; 

これはあなたのバンドルの好みに辞書を返します。 setPersistentDomain:forName:メソッドNSUserDefaultsを使用して、更新された環境設定辞書を保存することができます。

+0

恐ろしい - これはまさに私がやったことです、そしてそれは働いた! Thx v多く – Francis

0

バグではありません - プリファレンスは、バンドルではなくアプリケーションに対応してplistに保存されます。バンドルに固有の設定を読み書きするには、Core Foundation prefs systemを使用する必要があります。

+0

ありがとうございましたv much - 私は見ていきます。ここに私はこれが簡単になることを望んでいた... – Francis

関連する問題