Уроки iPhone SDK: Создание Landscape-mode-only приложения для iPhone. Уроки iPhone SDK: (Часть 2) Применение к настройкам приложения значений по умолчанию.
Май 15

В этом уроке мы рассмотрим создание файла настроек (settings bundle), отображаемого в меню Settings. Вот что мы получим на выходе в окне Application Preferences:

finalapp

Настройки приложения хранятся в plist-файле. Для начала создадим новый бандл, в состав которого войдет plist-файл. Для выполнения перечисленных ниже шагов необходимо открыть проект в XCode.

Выберите файл проекта в XCode (в проводнике файлов слева) и выполните File -> New File. Щелкнув на меню, выберите Settings Bundle, затем Next. Присвойте файлу имя и подтвердите кнопкой Finish.

settings

Разверните список Settings.bundle (имя моего пакета настроек) и найдите файл Root.plist, где будут храниться все настройки.
Щелчком на Root.plist разверните список спецификаторов настроек Preference Specifiers. Именно там находятся все задаваемые нами параметры. Некоторые настройки уже указаны предварительно. Для чистоты эксперимента я все их удалю и создам новые.

Новые поля в меню Preferences создаются вместе с новыми элементами (Item), у каждого из которых всегда есть тип (Type) и название (Title).

Возможные варианты типов:

  1. PSTextFieldSpecifier
  2. PSTitleValueSpecifier
  3. PSToggleSwitchSpecifier
  4. PSSliderSpecifier
  5. PSMultiValueSpecifier
  6. PSGroupSpecifier
  7. PSChildPaneSpecifier

В зависимости от выбранного в поле Type спецификатора указываются необходимые для него ключи.

PSTextFieldSpecifier (Текстовое поле ввода)

Выберите “PreferenceSpecifiers” и щелкните на появившемся в конце значке (как на рис. ниже). На рисунке показан случайный номер, поскольку все элементы я удалил.

clip1

Для настройки отображения поля/элемента выберите тип “Dictionary” — появится возможность добавлять подпункты (см. ниже). Для настройки разверните меню элемента.

clip2

Укажите для Title значение “Text Entry”, для ключа — “textEntry”, тип — “PSTextFieldSpecifier”. С помощью ключа мы перенесем значение непосредственно в приложение, а также присвоим величину по умолчанию. Создайте новый элемент под именем Item1, присвойте ключу имя “DefaultValue” и укажите тип String (в поле будет выведено значение по умолчанию, default). Вот как в итоге будет выглядеть первый элемент раздела.

item1

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

Ключ: IsSecure
Тип: Boolean
Значение: YES/NO

Ключ: KeyboardType
Тип: String
Значение: один из наборов символов Alphabet, NumbersAndPunctuation, NumberPad, URL или EmailAddress

Ключ: AutocapitalizationType
Тип: String
Значение: один из наборов символов None, Sentences, Words, AllCharacters. Значение по умолчанию — None.

Ключ: AutoCorrectionType
Тип: String
Значение: один из наборов символов Default (по умолчанию), No, Yes.

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

PSTitleValueSpecifier (Поле заголовка)

Ключ: Type (обязательный)
Тип: String
Значение: PSTitleValueSpecifier

Ключ: Title (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: Key (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: DefaultValue (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: Values
Тип: Array
Значение: Пара ключ–значение

Ключ: Titles
Тип: Array
Значение: Пара ключ–значение

Ключ Values должен иметь совпадать со значением массива Titles.

PSToggleSwitchSpecifier (Переключатель)

Ключ: Type (обязательный)
Тип: String
Значение: PSToogleSwitchSpecifier

Ключ: Title (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: Key (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: DefaultValue (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: TrueValue
Тип: Boolean
Значение: YES

Ключ: FalseValue
Тип: Boolean
Значение: NO

PSSliderSpecifier (Бегунок)

Ключ: Type (обязательный)
Тип: String
Значение: PSSliderSpecifier

Ключ: Title (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: Key (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: DefaultValue (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: MinimumValue (обязательный)
Тип: Number
Значение: Минимальное значение

Ключ: MaximumValue (обязательный)
Тип: Number
Значение: Максимальное значение

Ключ: MinimumValueImage
Тип: String
Значение: Картинка (21х21 пиксель)

Ключ: MaximumValueImage
Тип: String
Значение: Картинка (21х21 пиксель)

PSMultiValueSpecifier (Список значений)

Ключ: Type (обязательный)
Тип: String
Значение: PSMultiValueSpecifier

Ключ: Title (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: Key (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: DefaultValue (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

Ключ: Values
Тип: Array
Значение: Пара ключ–значение

Ключ: Titles
Тип: Array
Значение: Пара ключ–значение

PSGroupSpecifier (Группа элементов)

Ключ: Type (обязательный)
Тип: String
Значение: PSGroupSpecifier

Ключ: Title (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов.

PSChildPaneSpecifier (Ссылка на другую страницу настроек)

Ключ: Type (обязательный)
Тип: String
Значение: PSChildPaneSpecifier

Ключ: Title (обязательный)
Тип: String
Значение: Задаваемый пользователем набор символов

Ключ: File
Тип: String
Значение: Имя plist-файла без расширения

Значения для файла–схемы заданы — можно приступать к тестированию. Выберите Build and Go, затем щелкните на кнопке Home. Войдите в меню Settings и увидите имя своего приложения. Щелчок на нем разворачивает детальную информацию. При наличии в элементе ошибки он не будет отображаться (или же программа аварийно завершит работу).

Понадобится способ считывать эти данные и выводить на экран. В этом нам поможет следующий код:

1
2
3
4
5
[[NSUserDefaults standardUserDefaults] stringForKey:@"textEntry_key"];
NSString *readOnlyValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"readOnly_key"];
NSString *sliderValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"slider_key"];
NSString *colorValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"colors_key"];
NSString *toogleValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"toogle_key"];

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

В этом уроке я создал новый вид и контроллер для него. В этом режиме отображаются все значения настроек.

Исходный код скачать можно [здесь]

Текст оригинальной статьи на английском языке [здесь]

Уважаемые читатели, данный материал был переведен и подготовлен к публикации проектом LookApp.ru, при публикации на другом сайте ссылка на LookApp.ru обязательна.

1 звезда2 звезд3 звезд4 звезд5 звезд (2 голосов, средний: 3.00 из 5)
Загрузка ... Загрузка ...


Оставьте комментарий