Можно ли скрыть/отключить поля в Settings.bundle?

У меня есть несколько элементов текстового поля в Root.plist моего Settings.bundle. Мне нужно все это для моего приложения, но я хочу, чтобы один из них был либо скрытым, либо не редактируемым пользователем. Например. Когда пользователь переходит на свой iPhone к настройкам → MyApp, я хочу, чтобы одно из полей не было там видимым или отключено для редактирования. Возможно ли это?

Ответ 1

После дальнейших исследований я нашел ответ на свой вопрос и ответ на проблему, которую я пытаюсь решить.

Вопрос: Можете ли вы скрыть/отключить поля в Settings.bundle/Root.plist?
Ответ: Нет.

Проблема: Как безопасно хранить информацию об аутентификации для моего приложения?
Ответ: Встроенные службы Keychain.

Источник: Задачи Keychain Services для iOS

Ответ 2

Конечно. Просто измените тип элемента на заголовок.

Вы все еще можете сохранить и прочитать его значение из кода. но он не появится в приложении. настройки.

Ответ 3

Короткий ответ, вы не можете. Долгий ответ: я полагаю, вы используете Root.plist где-то еще в своем приложении, верно? Если это так, то я бы рекомендовал в этом случае, если вам действительно нужно работать так, как вы описали, - это создать два файла plist и объединить их во время выполнения.

Другими словами, создайте Root.plist только с полями, которые вы хотите изменить на странице настроек iOS (например, без поля, которое вы в настоящее время пытаетесь скрыть), и другого .plist файла с остальной частью поля, которые вы хотите обрабатывать внутри своего приложения.

Затем во время выполнения вы сначала загружаете Root.plist, а затем объединяете содержимое другого .plist файла в структуру данных, которую вы будете использовать.

Не очень гладкий, но можно работать.

Ответ 4

Установка типа в plist из "текстового поля" в "Title" работает в том, что вы получаете поле, которое больше не редактируется пользователем, но может быть прочитано приложением.

Это не совсем корректно, насколько подходит согласованность пользовательского интерфейса, поэтому это может быть не идеальное решение для отключения элемента настроек.