我想为我的越狱调整制作一个偏好包。 我成功地用一个有效的开关制作了一个偏好包。
但我想要一个选择颜色的设置。 例如:
Blue
Color > Yellow
Green
因此,如果我点击颜色,它会将我带到另一个屏幕,要求我选择" 蓝色",&#34 ;的黄"或" 绿色"
我在网上查看了教程,我认为这是一个PSLinkList
。
但是我希望我的调整能够读取plist并记录所选择的颜色。
我认为它会读validValues
的{{1}},我是对的吗?
但是我会使用什么代码来阅读plist?
编辑:Nate帮我添加了PSListcontroller,但遇到了一个问题:
这是我的plist http://pastebin.com/uNKzLBrf
PSLinkList
帮我解决这个问题?
答案 0 :(得分:4)
看看at this older tutorial。 (注意:对于其他人来说,本教程不使用PreferenceLoader,现在应该用于此任务)
在您的情况下,我认为MyAppName.plist
应包含以下内容:
<key>items</key>
<array>
<dict>
<key>cell</key>
<string>PSLinkListCell</string>
<key>defaults</key>
<string>com.mycompany.MyAppName</string>
<key>detail</key>
<string>PSListItemsController</string>
<key>key</key>
<string>color_pref</string>
<key>label</key>
<string>Color</string>
<key>validTitles</key>
<array>
<string>Blue</string>
<string>Yellow</string>
<string>Green</string>
</array>
<key>validValues</key>
<array>
<string>Blue</string>
<string>Yellow</string>
<string>Green</string>
</array>
</dict>
</array>
然后您可以通过以下代码阅读:
#define PLIST_FILENAME @"/var/mobile/Library/Preferences/com.mycompany.MyAppName.plist"
#define COLOR_PREF @"color_pref"
// an ivar
NSMutableDictionary* preferences;
- (void) initializePreferences {
NSFileManager* fileManager = [NSFileManager defaultManager];
// initialize the preferences
if (![fileManager fileExistsAtPath: PLIST_FILENAME]) {
// make sure the user settings have default values assigned
NSDictionary* defaultPrefs = [[NSDictionary alloc] initWithObjectsAndKeys:
@"Yellow", COLOR_PREF,
nil];
preferences = [[NSMutableDictionary alloc] initWithDictionary: defaultPrefs];
[preferences writeToFile: PLIST_FILENAME atomically: YES];
} else {
preferences = [[NSMutableDictionary alloc] initWithContentsOfFile: PLIST_FILENAME];
}
}
- (NSString*) colorPref {
return [preferences valueForKey: COLOR_PREF];
}
我在这里跳过了一些步骤,因为听起来你对the general process of adding your jailbreak app, or tweak's, settings to Preferences.app很熟悉。如果这对您不起作用,请发表评论,要求澄清。