Реализация Пакета Настроек iOS
В iOS платформа Основы обеспечивает низкоуровневый механизм для того, чтобы хранить предпочтительные данные. Приложения тогда имеют две опции для представления предпочтений:
Предпочтения дисплея в приложении.
Используйте пакет Настроек для управления предпочтениями из приложения Настроек.
Какая опция, которую Вы выбираете, зависит от того, как Вы ожидаете, что пользователи будут взаимодействовать с предпочтениями. Пакет Настроек обычно является предпочтительным механизмом для отображения предпочтений. Однако игры и другие приложения, содержащие параметры конфигурации или другие предпочтения, к которым часто получают доступ, могли бы хотеть представить их в приложении вместо этого. Независимо от того, как Вы представляете их, Вы используете NSUserDefaults
класс предпочтения доступа оценивает от Вашего кода.
Эта глава фокусируется на создании пакета Настроек для Вашего приложения. Пакет Настроек содержит файлы, описывающие структуру и стиль презентации Ваших предпочтений. Приложение Настроек использует эту информацию, чтобы создать запись для Вашего приложения и вывести на экран Ваши пользовательские предпочтительные страницы.
Для инструкций по тому, как управлять и представить настройки и параметры конфигурации, см. Инструкции по Интерфейсу пользователя iOS.
Интерфейс приложения настроек
Приложение Настроек реализует иерархический набор страниц для навигации по предпочтениям приложения. Основная страница списков приложений Настроек система и сторонние приложения, предпочтения которых могут быть настроены. Выбор стороннего приложения берет пользователя к предпочтениям того приложения.
Каждое приложение с пакетом Настроек имеет по крайней мере одну страницу предпочтений, называемых основной страницей. Если Ваше приложение имеет только несколько предпочтений, основная страница может быть единственной, в которой Вы нуждаетесь. Если число предпочтений становится слишком большим для адаптации на основной странице, однако, можно создать дочерние страницы, соединяющиеся от основной страницы или других дочерних страниц. Нет никакого определенного предела числу дочерних страниц, которые можно создать, но необходимо стремиться сохранить предпочтения максимально простыми и легкими для навигации.
Содержание каждой страницы состоит из одних или более средств управления, которые Вы конфигурируете. Таблица 4-1 перечисляет типы средств управления, поддерживаемых приложением Настроек, и описывает, как Вы могли бы использовать каждый тип. Таблица также приводит необработанное ключевое имя, сохраненное в конфигурационных файлах Вашего пакета Настроек.
Тип управления | Описание |
---|---|
Текстовое поле | Тип текстового поля выводит на экран (дополнительный) заголовок и доступное для редактирования текстовое поле. Можно использовать этот тип для предпочтений, требующих, чтобы пользователь указал значение пользовательской строки. Ключ для этого типа |
Заголовок | Тип заголовка выводит на экран строковое значение только для чтения. Можно использовать этот тип для отображения предпочтительных значений только для чтения. (Если предпочтение содержит загадочные или неинтуитивные значения, этот тип позволяет Вам отобразить возможные значения на пользовательские строки.) Ключ для этого типа |
Тумблер | Тип тумблера выводит на экран выключатель ON/OFF. Можно использовать этот тип для конфигурирования предпочтения, которое может иметь только одно из двух значений. Несмотря на то, что Вы обычно используете этот тип для представления предпочтений, содержащих булевы значения, можно также использовать его с предпочтениями, содержащими небулевы значения. Ключ для этого типа |
Ползунок | Тип ползунка выводит на экран управление ползунком. Можно использовать этот тип для предпочтения, представляющего диапазон значений. Значение для этого типа является вещественным числом, минимальное и максимальное значение которого Вы указываете. Ключ для этого типа |
Мультизначение | Тип мультизначения позволяет пользователю выбрать одно значение из списка значений. Можно использовать этот тип для предпочтения, поддерживающего ряд взаимоисключающих значений. Значения могут иметь любой тип. Ключ для этого типа |
Группа | Тип группы для организации групп предпочтений на единственной странице. Тип группы не представляет конфигурируемое предпочтение. Это просто содержит строку заголовка, сразу выведенную на экран прежде один или несколько конфигурируемые предпочтения. Ключ для этого типа |
Дочерняя область | Дочерний тип области позволяет пользователю перейти к новой странице предпочтений. Вы используете этот тип для реализации иерархических предпочтений. Для получения дополнительной информации о том, как Вы конфигурируете и используете этот предпочтительный тип, видите Иерархические Предпочтения. Ключ для этого типа |
Для получения дальнейшей информации о формате каждого предпочтительного типа, посмотрите Ссылку Схемы Приложения Настроек. Чтобы изучить, как создать и отредактировать файлы Страницы настроек, посмотрите Создание и Изменение Пакета Настроек.
Пакет настроек
Пакет Настроек имеет имя Settings.bundle
и находится в каталоге верхнего уровня пакета Вашего приложения. Этот пакет содержит один или несколько файлов Страницы настроек, описывающих отдельные страницы предпочтений. Это может также включать другие файлы поддержки, должен был вывести на экран Ваши предпочтения, такие как изображения или локализованные строки. Таблица 4-2 перечисляет содержание типичного пакета Настроек.
Название товара | Описание |
---|---|
| Файл Страницы настроек, содержащий предпочтения корневой страницы. Имя этого файла должно быть |
Дополнительный | При создании ряда иерархических предпочтений с помощью дочерних областей содержание для каждой дочерней области сохранено в отдельном файле Страницы настроек. Вы ответственны за именование этих файлов и соединение их с корректной дочерней областью. |
Один или больше | Эти каталоги хранят ресурсы локализованной строки для Ваших файлов Страницы настроек. Каждый каталог содержит единственный строковый файл, заголовок которого указан в Вашем файле Страницы настроек. Строковые файлы обеспечивают локализованные строки для отображения для предпочтений. |
Дополнительные изображения | При использовании управления ползунком можно сохранить изображения для ползунка в каталоге верхнего уровня пакета. |
В дополнение к пакету Настроек комплект приложений может содержать пользовательский значок для Ваших настроек приложения. Отображения приложения Настроек значок Вы обеспечиваете рядом с записью для Ваших предпочтений приложения. Для получения информации о значках приложения и как Вы указываете их, см. Руководство по программированию Приложения для iOS.
Когда приложение Настроек запускается, оно проверяет каждое пользовательское приложение на присутствие пакета Настроек. Для каждого пользовательского пакета это находит, это загружает тот пакет и выводит на экран имя соответствующего приложения и значок в Настройках основная страница. Когда пользователь касается строки, принадлежащей Вашему приложению, Настройки загружается Root.plist
Файл страницы настроек для Вашего пакета Настроек и использования, что файл для создания основной страницы приложения предпочтений.
В дополнение к загрузке Вашего пакета Root.plist
Файл страницы настроек, приложение Настроек также загружает любые специфичные для языка ресурсы для того файла по мере необходимости. Каждый файл Страницы настроек может иметь связанное .strings
файл, содержащий, локализовал значения для любых видимых пользователем строк. Поскольку это подготавливает Ваши предпочтения дисплея, приложение Настроек ищет строковые ресурсы на предпочтительном языке пользователя и заменяет ими на Вашей предпочтительной странице до дисплея.
Формат файла страницы настроек
Каждый файл Страницы настроек хранится в формате файла списка свойств Настроек iPhone, который является структурированным форматом файла. Самый простой способ отредактировать файлы Страницы настроек состоит в том, чтобы использовать встроенные средства редактора XCode; посмотрите Подготовку Страницы настроек для Редактирования. Можно также отредактировать файлы списка свойств с помощью Редактора Списка свойств приложение, идущее с инструментами Xcode.
Корневой элемент каждого файла Страницы настроек содержит ключи, перечисленные в Таблице 4-3. Только один ключ фактически требуется, но рекомендуется включать их обоих.
Ключ | Ввести | Значение |
---|---|---|
| Массив | Значение для этого ключа является массивом словарей с каждым словарем, содержащим информацию для единственного управления. Для списка типов управления посмотрите Таблицу 4-1. Для описания ключей, связанных с каждым управлением, посмотрите Ссылку Схемы Приложения Настроек. |
| Строка | Имя строкового файла связалось с этим файлом. Копия этого файла (с надлежащими локализованными строками) должна быть расположена в каждом из специфичных для языка каталогов проекта Вашего пакета. Если Вы не включаете этот ключ, строки в этом файле не локализуются. Для получения информации о том, как эти строки используются, видят Локализованные Ресурсы. |
Иерархические предпочтения
Если Вы планируете организовать свои предпочтения иерархически, каждая страница, которую Вы определяете, должна иметь свое собственное отдельное .plist
файл. Каждый .plist
файл содержит набор предпочтений, выведенных на экран только на той странице. Основная предпочтительная страница Вашего приложения всегда сохранена в вызванном файле Root.plist
. Дополнительным страницам можно дать любое имя, которое Вы любите.
Для указания ссылки между родительской страницей и дочерней страницей Вы включаете дочернее управление областью в родительскую страницу. Дочернее управление областью создает строку, когда коснулись, выводящую на экран новую страницу настроек. File
ключ дочернего управления областью идентифицирует имя .plist
файл с содержанием дочерней страницы. Title
ключ идентифицирует заголовок дочерней страницы; этот заголовок также используется в качестве текста управления, используемого для отображения дочерней страницы. Приложение Настроек автоматически обеспечивает средства управления навигацией на дочерней странице, чтобы позволить пользователю перейти назад к родительской странице.
Рисунок 4-1 показывает, как работает этот иерархический набор страниц. Левая сторона числа показывает .plist
файлы и правая сторона показывают отношения между соответствующими страницами.
Для получения дополнительной информации о дочерних средствах управления областью и их связанных ключах, посмотрите Ссылку Схемы Приложения Настроек.
Локализованные ресурсы
Поскольку предпочтения содержат видимые пользователем строки, необходимо обеспечить локализованные версии тех строк с пакетом Настроек. Каждая страница предпочтений может иметь связанное .strings
файл для каждой локализации поддерживается Вашим пакетом. Когда приложение Настроек встречается с ключом, поддерживающим локализацию, оно проверяет соответственно локализованный .strings
файл для соответствующего ключа. Если это находит один, это выводит на экран значение, связанное с тем ключом.
При поиске локализованных ресурсов такой как .strings
файлы, приложение Настроек соблюдает те же правила, за которыми следуют другие приложения для iOS. Это сначала пытается найти локализованную версию ресурса, соответствующего предпочтительную установку языка пользователя. Если никакой такой ресурс не существует, надлежащий язык нейтрализации выбран.
Для получения информации о формате строковых файлов специфичные для языка каталоги проекта, и как специфичные для языка ресурсы получены от пакетов, видят Руководство по Интернационализации и Локализации.
Создание и изменение пакета настроек
XCode обеспечивает шаблон для добавления пакета Настроек к Вашему текущему проекту. Пакет настроек по умолчанию содержит a Root.plist
файл и каталог языка по умолчанию для хранения любых локализованных ресурсов. Можно развернуть этот пакет по мере необходимости для включения дополнительных файлов списка свойств и ресурсов, необходимых пакету Настроек.
Добавление пакета настроек
Для добавления, Настройки связываются к проекту XCode:
Выберите File> New> New File.
Под iOS выберите Resource, и затем выберите шаблон Settings Bundle.
Назовите файл
Settings.bundle
.
В дополнение к добавлению нового пакета Настроек к Вашему проекту XCode автоматически добавляет, что пакет к Ресурсам Пакета Копии создает фазу Вашей цели приложения. Таким образом все, что необходимо сделать, изменяют файлы списка свойств Настроек, связывают и добавляют любые необходимые ресурсы.
Новый пакет Настроек имеет следующую структуру:
Settings.bundle/ |
Root.plist |
en.lproj/ |
Root.strings |
Подготовка страницы настроек для редактирования
Прежде, чем отредактировать любой из файлов списка свойств в Вашем пакете Настроек, необходимо сконфигурировать редактора XCode для форматирования содержания тех файлов как настройки iPhone. XCode делает это автоматически для Root.plist
файл, но Вы, возможно, должны отформатировать дополнительные файлы списка свойств вручную. Для форматирования файла как Настроек iPhone сделайте следующее:
Выберите файл.
Щелчок управления окно редактора и выбирает Property List Type> Настройки iPhone plist, если это уже не выбрано.
Форматирование списка свойств упрощает понимать и редактировать содержание файла. XCode заменяет человекочитаемыми строками (как показано на рисунке 4-2), которые являются подходящими для выбранного формата.
Конфигурирование страницы настроек: учебное руководство
Этот раздел показывает Вам, как сконфигурировать Страницу настроек для отображения средств управления, которые Вы хотите. Цель учебного руководства состоит в том, чтобы создать страницу как та на рисунке 4-3. Если Вы еще не создали пакет Настроек для своего проекта, необходимо сделать так, как описано в Добавлении Пакета Настроек перед продолжением этих шагов.
Раскройте ключ Preference Items для отображения элементов по умолчанию, идущих с шаблоном.
Измените заголовок
Item 0
кSound
.Раскрыть
Item 0
изPreference Items
.Измените значение
Title
ключ отGroup
кSound
.Уезжайте
Type
набор ключей кGroup
.Щелкните по треугольнику раскрытия элемента для сокрытия его содержания.
Создайте первый тумблер для переименованной Звуковой группы.
Выбрать
Item 2
(элемент тумблера)Preference Items
и выберите Edit> Cut.Выбрать
Item 0
и выберите Edit> Paste. (Это перемещает элемент тумблера перед элементом текстового поля.)Раскройте элемент тумблера для раскрытия его ключей конфигурации.
Измените значение
Title
ключ кPlay Sounds
.Измените значение
Identifier
ключ кplay_sounds_preference
.Щелкните по треугольнику раскрытия элемента для сокрытия его содержания.
Создайте второй тумблер для Звуковой группы.
Выбрать
Item 1
(тумблер Звуков Игры).Выберите Edit> Copy.
Выберите Edit> Paste для размещения копии тумблера прямо после первого.
Раскройте новый элемент тумблера для раскрытия его ключей конфигурации.
Измените значение
Title
ключ к3D Sound
.Измените значение
Identifier
ключ к3D_sound_preference
.Щелкните по треугольнику раскрытия элемента для сокрытия его содержания.
В этой точке Вы закончили первую группу настроек и готовы создать Пользовательскую Информационную группу.
Изменение
Item 3
в управление Группы и имя этоUser Info
.Щелкнуть
Item 3
вPreferences Items
. Это выводит на экран всплывающее меню со списком типов изделия.От всплывающего меню выбрать
Group
изменить тип управления.Раскройте содержание
Item 3
.Установите значение
Title
ключ кUser Info
.Щелкните по треугольнику раскрытия элемента для сокрытия его содержания.
Создайте Поле имени.
Выбрать
Item 4
вPreferences Items
.Используя всплывающее меню, измените его тип на
Text Field
.Установите значение
Title
ключ кName
.Установите значение
Identifier
ключ кuser_name
.Щелкните по треугольнику раскрытия элемента для сокрытия его содержания.
Создайте настройки Experience Level.
Выбрать
Item 4
.Щелчок управления окно редактора и выбирает Add Row для добавления нового элемента.
Установите тип нового элемента к
Multi Value
.Раскройте содержание элемента и установите его заголовок в
Experience Level
, его идентификатор кexperience_preference
, и его значение по умолчанию к0
.С выбранным ключом Default Value, Щелчок управления и выбирают Add Row для добавления a
Titles
массив.Выберите
Titles
выстройте и нажмите Return для добавления нового подэлемента.Добавьте еще два подэлемента для создания в общей сложности трех элементов.
Установите значения подэлементов к
Beginner
,Expert
, иMaster
.Скройте подэлементы ключа.
Добавьте новый элемент для
Values
массив.Добавьте три подэлемента к
Values
массив и набор их значения к0
,1
, и2
.Скройте содержание
Item 5
.
Добавьте заключительную группу к своей странице настроек.
Создайте новый элемент и установите его тип в
Group
и его заголовок кGravity
.Создайте другой новый элемент и установите его тип в
Slider
, его идентификатор кgravity_preference
, его значение по умолчанию к1
, и его максимальное значение к2
.
Создание дополнительных файлов страницы настроек
Шаблон Settings Bundle включает Root.plist
файл, определяющий главную Страницу настроек Вашего приложения. Для определения дополнительных Страниц настроек необходимо добавить дополнительные файлы списка свойств к пакету Настроек.
Для добавления файла списка свойств к пакету Настроек в XCode сделайте следующее:
Выберите File> New> New File.
Под iOS выберите Resource, и затем выберите шаблон Property List.
Выберите новый файл для отображения его содержания в редакторе.
Щелчок управления область редактора и выбирает Property List Type> Настройки iPhone plist для форматирования содержания.
Щелчок управления область редактора снова и выбирает Add Row для добавления нового ключа.
Добавьте и сконфигурируйте любые дополнительные ключи, в которых Вы нуждаетесь.
После добавления новой Страницы настроек к Вашему пакету Настроек можно отредактировать содержание страницы, как описано в Конфигурировании Страницы настроек: Учебное руководство. Для отображения настроек для страницы необходимо сослаться на него от дочернего управления областью, как описано в Иерархических Предпочтениях.
Отладка предпочтений моделируемых приложений
При выполнении приложения Средство моделирования iOS хранит любые предпочтительные значения для приложения в ~/Library/Application Support/iOS Simulator/User/Applications/
<APP_ID>/Library/Preferences
, где <APP_ID> является программно сгенерированным именем каталога что использование iOS для идентификации приложения.
Каждый раз, когда Вы создаете свое приложение, XCode сохраняет Ваши предпочтения приложения и другие соответствующие файлы библиотеки. Если Вы хотите удалить текущие предпочтения для тестирования, можно удалить приложение из Средства моделирования или выбрать Reset Contents и Settings из меню Simulator iOS.