【问题标题】:How to grey out a specific cell in an ios settings bundle (PreferenceLoader)?如何使 ios 设置包(PreferenceLoader)中的特定单元格变灰?
【发布时间】:2013-01-18 10:38:25
【问题描述】:

最近我一直在使用一个优秀的框架(Theos by the awesome Dustin Howett)为 Cydia 开发一个调整,我想知道是否有任何方法可以让单元格变灰调整的首选项包。是否需要私有 API 并不重要,因为这是针对越狱环境。非常感谢任何帮助、链接或参考。我正在使用私有框架(Preferences.framework)

【问题讨论】:

    标签: iphone ios objective-c cydia theos


    【解决方案1】:

    我没有带越狱的手机,所以我无法对此进行测试,但如果您查看at the Preferences docs on iphonedevwiki,您会看到有一个标志会将偏好项显示为灰色 (enabled) .因此,您可以在首选项 plist 文件中使用如下代码块:

         <dict>
            <key>cell</key>
            <string>PSSwitchCell</string>
            <key>default</key>
            <true/>
            <key>defaults</key>
            <string>com.mycompany.myapp</string>
            <key>key</key>
            <string>wifi_location</string>
            <key>label</key>
            <string>WiFi Location</string>
            <key>enabled</key>                 
            <false/>                           <!-- gray out this item -->
         </dict>
    

    如果您查看 the preference loader docs,您会发现您也可以将 代码 注入 Preferences.app,这可能允许您动态设置此标志(可能如果您要调整不属于您的应用,则需要)。

    See more on this here

    我稍后会尝试对此进行测试,并希望更新此答案。

    【讨论】:

    • @SuperDev,对。如果您在 plist 文件中有&lt;key&gt;id&lt;/key&gt;&lt;string&gt;SomeSpecifierId&lt;/string&gt;,那么您可能会得到与之对应的PSSpecifier。或者,您可能会遍历所有说明符并寻找正确的标签。然后,在您的PSSpecifier 实例上,使用setProperty:forKey:enabled 键的值(属性)更改为NO(或者可能是[NSNumber numberWithBool:NO]
    • 我想是这样,但是查看 API,setProperty: 需要一个 id 值,所以它可能需要 [specifier setProperty: [NSNumber numberWithBool: NO] forKey: @"enabled"]。我现在正在语言之间切换,不记得自动装箱在 Objective-C 中是否有效:/
    • @SuperDev,另外,我不清楚您是自己创建此 Preference Bundle 以供您的调整使用,还是调整已经具有设置或首选项的现有应用程序捆。这会影响你处理这些东西的方式。但是,也许您已经弄清楚了那部分,并且只需要知道要使用什么代码,一旦您将您的 代码 正确连接到 Preferences.app。
    • 如果您有更具体的问题,请随时在此处提问。不过,我不能聊天,因为这迫使我闲逛并不断被打断。我的最后一个问题是检查您是否自己创建首选项包,而不是尝试调整其他应用程序的。鉴于您说“是”,您应该能够按照我发布的链接中的教程,实现您自己的 PSListController 子类。获取说明符并修改它们。我不确定,但如果更改不会立即生效,您可能需要致电控制器的updateSpecifiers:withSpecifiers
    • @SuperDev,它链接到我的答案中的参考资料,但我只是想我会说这似乎也是一个非常完整的教程:touchrepo.com/guides/preferencebundles/PreferenceBundles.doc
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2022-01-07
    • 2016-07-01
    • 1970-01-01
    • 2016-11-02
    • 2011-10-02
    相关资源
    最近更新 更多