如何在偏好包中使用PSLinkListCell中的值?

我想为我的越狱调整做一个首选项。 我成功地制作了一个工作的开关的首选项。

但是我想要一个设置来select颜色。 例:

Blue Color > Yellow Green 

所以,如果我点击颜色 ,它会带我到另一个屏幕,要求我select“ 蓝色 ”,“ 黄色 ”或“ 绿色 ”我看了网上的教程,我认为这是一个PSLinkList

但我想要调整阅读plist并loggingselect的颜色。 我想它会读取validValuesPSLinkList ,对吗?

但是,我会用什么代码来阅读plist?

编辑 :Nate帮助我添加PSListcontroller,但我遇到了一个问题:

在这里输入图像说明

这是我的plist http://pastebin.com/uNKzLBrf

 <?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>items</key> <array> <dict> <key>cell</key> <string>PSGroupCell</string> <key>label</key> <string>Main</string> </dict> <dict> <key>cell</key> <string>PSSwitchCell</string> <key>default</key> <true/> <key>defaults</key> <string>com.junyi00.prefs</string> <key>key</key> <string>enabled</string> <key>label</key> <string>Enable</string> </dict> <dict> <key>cell</key> <string>PSGroupCell</string> <key>label</key> <string>Colors</string> </dict> <dict> <key>cell</key> <string>PSListLinkCell</string> <key>defaults</key> <string>com.junyi00.prefs</string> <key>detail</key> <string>PSListItemsController</string> <key>key</key> <string>color</string> <key>label</key> <string>Color</string> <key>validTitles</key> <array> <string>Default</string> <string>Random</string> <string>Yellow</string> <string>Blue</string> <string>Red</string> <string>Green</string> </array> <key>validValues</key> <array> <string>Default</string> <string>Random</string> <string>Yellow</string> <string>Blue</string> <string>Red</string> <string>Green</string> </array> </dict> </array> <key>title</key> <string>Flash Color</string> </dict> </plist> 

帮助我呢?

看看这个较旧的教程 。 ( 注意:对于读这个的人来说,本教程不使用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]; } 

我在这里略过了一些步骤,因为听起来你已经熟悉了将Preferences.app添加到越狱应用程序或调整设置的一般过程 。 如果这不适合你,请发表评论,要求澄清。

Interesting Posts