【问题标题】:Can I Hide/Disable fields in Settings.bundle?我可以隐藏/禁用 Settings.bundle 中的字段吗?
【发布时间】:2023-03-08 06:47:01
【问题描述】:

我的 Settings.bundle 的 Root.plist 中有几个文本字段项。我的应用程序需要所有这些,但我希望其中一个被用户隐藏或不可编辑。例如。当用户在他的 iPhone 上转到 Settings--> MyApp 时,我希望其中一个字段在那里不可见,或者禁用编辑。这可能吗?

【问题讨论】:

    标签: ios xcode settings


    【解决方案1】:

    简短的回答,你不能。长答案:我认为您在应用程序中的其他地方使用 Root.plist,对吗?如果是这样,在这种情况下,如果您确实需要它以您描述的方式工作,我建议您创建两个 plist 文件,并在运行时合并它们。

    换句话说,创建 Root.plist 仅包含您希望用户在 iOS 设置页面中更改的字段(例如,不包含您当前尝试隐藏的字段),以及另一个包含其余部分的 .plist 文件您要在应用程序中处理的字段。

    然后,在运行时,您首先加载 Root.plist,然后将另一个 .plist 文件的内容合并到您将使用的数据结构中。

    不是很流畅,但可能会奏效。

    【讨论】:

      【解决方案2】:

      经过进一步研究,我找到了我的问题的答案,以及我试图解决的问题的答案。

      问题:可以隐藏/禁用 Settings.bundle/Root.plist 中的字段吗?
      回答:不能。

      问题:如何安全地存储我的应用的身份验证信息?
      答案:内置钥匙串服务。

      来源:Keychain Services Tasks for iOS

      【讨论】:

      • 这很奇怪。 Nike+ 应用程序设置会根据开关字段的状态禁用字段。未记录的功能?
      • @batkuip 不,我认为这是因为 Nike+ 内置于 iOS 中。我从未见过其他应用这样做。
      • 感谢您花时间启发我们;)+1
      【解决方案3】:

      将 plist 中的类型从“文本字段”设置为“标题”,这样您将获得一个用户不再可编辑但应用程序可以读取的字段。

      就 UI 一致性而言,它看起来不太正确,因此这可能不是禁用首选项项的理想解决方案。

      【讨论】:

        【解决方案4】:

        当然可以。只需将项目类型更改为标题即可。

        您仍然可以保存并从代码中读取它的值。但是,它不会出现在应用程序中。设置。

        【讨论】:

        • 如果是多值类型,改成title时会丢失数据。这不起作用。
        猜你喜欢
        • 2012-02-13
        • 2017-02-02
        • 1970-01-01
        • 2020-02-22
        • 2016-12-19
        • 1970-01-01
        • 1970-01-01
        • 2022-01-18
        • 1970-01-01
        相关资源
        最近更新 更多