1、與工程中添加Resource->Setting Bundle
創(chuàng)建
文件說明:
en.lproj為多語言配置目錄該目錄的strings文件只有在IOS系統(tǒng)語言環(huán)境與文件夾想符才能讀取。
Root.plist為Setting頁面的根目錄配置文件。
此時編譯運行后已經(jīng)能夠看到通用設置中對應程序的Setting。
2、Setting頁面制作Root.plist
Root.plist組成:
PreferenceSpecifiers 包含Setting頁面中的子項
Strings Filename 指定多語言環(huán)境下的strings文件對應語言環(huán)境生效
StringsTable 指定strings文件直接生效
以下是一個Setting設置plist例子
Root.plist
[html] view plain copy
<?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>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Sound</string>
</dict>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>Play Sound</string>
<key>Key</key>
<string>play_sound_preference</string>
<key>DefaultValue</key>
<false/>
</dict>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>3D Sound</string>
<key>Key</key>
<string>3D_sound_preference</string>
<key>DefaultValue</key>
<false/>
</dict>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>User Info</string>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>Name</string>
<key>Key</key>
<string>user_name</string>
</dict>
<dict>
<key>Type</key>
<string>PSMultiValueSpecifier</string>
<key>Title</key>
<string>Experience Level</string>
<key>Key</key>
<string>experience_preference</string>
<key>DefaultValue</key>
<string>0</string>
<key>Titles</key>
<array>
<string>Beginner</string>
<string>Expert</string>
<string>Master</string>
</array>
<key>Values</key>
<array>
<string>0</string>
<string>1</string>
<string>2</string>
</array>
</dict>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Gravity</string>
</dict>
<dict>
<key>Type</key>
<string>PSSliderSpecifier</string>
<key>Key</key>
<string>gravity_preference</string>
<key>DefaultValue</key>
<integer>1</integer>
<key>MinimumValue</key>
<integer>0</integer>
<key>MaximumValue</key>
<integer>2</integer>
</dict>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Other</string>
</dict>
<dict>
<key>File</key>
<string>Other</string>
<key>Type</key>
<string>PSChildPaneSpecifier</string>
<key>Title</key>
<string>Other Setting</string>
<key>Key</key>
<string>other_setting</string>
</dict>
</array>
<key>Strings Filename</key>
<string>Root</string>
</dict>
</plist>
Other.plist(直接復制Root.plist更改Item的Key)
[html] view plain copy
<?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>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Sound</string>
</dict>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>Play Sound</string>
<key>Key</key>
<string>oplay_sound_preference</string>
<key>DefaultValue</key>
<false/>
</dict>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>3D Sound</string>
<key>Key</key>
<string>o3D_sound_preference</string>
<key>DefaultValue</key>
<false/>
</dict>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>User Info</string>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>Name</string>
<key>Key</key>
<string>ouser_name</string>
</dict>
<dict>
<key>Type</key>
<string>PSMultiValueSpecifier</string>
<key>Title</key>
<string>Experience Level</string>
<key>Key</key>
<string>oexperience_preference</string>
<key>DefaultValue</key>
<string>0</string>
<key>Titles</key>
<array>
<string>Beginner</string>
<string>Expert</string>
<string>Master</string>
</array>
<key>Values</key>
<array>
<string>0</string>
<string>1</string>
<string>2</string>
</array>
</dict>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Gravity</string>
</dict>
<dict>
<key>Type</key>
<string>PSSliderSpecifier</string>
<key>Key</key>
<string>ogravity_preference</string>
<key>DefaultValue</key>
<integer>1</integer>
<key>MinimumValue</key>
<integer>0</integer>
<key>MaximumValue</key>
<integer>2</integer>
</dict>
</array>
<key>Strings Filename</key>
<string>Root</string>
</dict>
</plist>
3、讀取Setting配置
Setting是以Key Value的形式存儲在NSUserDefaults中所以當Setting配置文件Key相同時會相互影響。
[cpp] view plain copy
NSUserDefaults *userdefaults = [NSUserDefaults standardUserDefaults];
//[userdefaults valueForKey:(NSString *)];//根據(jù)Key獲取數(shù)據(jù)
Setting變更同步注冊通知
[cpp] view plain copy
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(change) name:@"NSUserDefaultsDidChangeNotification" object:nil];