2013-03-10 64 views
3

我想为我的越狱调整制作一个首选项。 我成功地制作了一个工作的开关的首选项包。如何使用偏好包中的PSLinkListCell中的值?

但我想选择颜色的设置。 例子:

  Blue  
Color > Yellow  
     Green 

所以,如果我在单击颜色,它会给我带来另一个屏幕,这让我选其一“”,“”或“绿色” 我看过网上的教程,我认为这是一个PSLinkList

但我想调整一下阅读plist并记录选择了什么颜色。 我认为它会读取PSLinkListvalidValues,对不对?

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

编辑:内特帮我加入PSListcontroller但我遇到了一个问题:

enter image description here

,这里是我的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> 

帮助我呢?

回答

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。如果这不适合你,请发表评论,要求澄清。

+0

非常感谢!我会尽快尝试。我之前看到过这种情况,但主要是我试图用自己的代码阅读plist,但失败了。 – junyi00 2013-03-10 16:08:02

+0

我终于用几次尝试后解决了我的问题,但是令人尴尬的是,我无法选择什么颜色(只显示单元格,点击它什么都不做)请帮助这里 – junyi00 2013-03-15 08:23:36

+0

我在Top Post中添加了plist – junyi00 2013-03-16 18:37:00