|
Май
15
|
В этом уроке мы рассмотрим создание файла настроек (settings bundle), отображаемого в меню Settings. Вот что мы получим на выходе в окне Application Preferences:
Настройки приложения хранятся в plist-файле. Для начала создадим новый бандл, в состав которого войдет plist-файл. Для выполнения перечисленных ниже шагов необходимо открыть проект в XCode.
Выберите файл проекта в XCode (в проводнике файлов слева) и выполните File -> New File. Щелкнув на меню, выберите Settings Bundle, затем Next. Присвойте файлу имя и подтвердите кнопкой Finish.
Разверните список Settings.bundle (имя моего пакета настроек) и найдите файл Root.plist, где будут храниться все настройки.
Щелчком на Root.plist разверните список спецификаторов настроек Preference Specifiers. Именно там находятся все задаваемые нами параметры. Некоторые настройки уже указаны предварительно. Для чистоты эксперимента я все их удалю и создам новые.
Новые поля в меню Preferences создаются вместе с новыми элементами (Item), у каждого из которых всегда есть тип (Type) и название (Title).
Возможные варианты типов:
- PSTextFieldSpecifier
- PSTitleValueSpecifier
- PSToggleSwitchSpecifier
- PSSliderSpecifier
- PSMultiValueSpecifier
- PSGroupSpecifier
- PSChildPaneSpecifier
В зависимости от выбранного в поле Type спецификатора указываются необходимые для него ключи.
PSTextFieldSpecifier (Текстовое поле ввода)
Выберите “PreferenceSpecifiers” и щелкните на появившемся в конце значке (как на рис. ниже). На рисунке показан случайный номер, поскольку все элементы я удалил.
Для настройки отображения поля/элемента выберите тип “Dictionary” — появится возможность добавлять подпункты (см. ниже). Для настройки разверните меню элемента.
Укажите для Title значение “Text Entry”, для ключа — “textEntry”, тип — “PSTextFieldSpecifier”. С помощью ключа мы перенесем значение непосредственно в приложение, а также присвоим величину по умолчанию. Создайте новый элемент под именем Item1, присвойте ключу имя “DefaultValue” и укажите тип String (в поле будет выведено значение по умолчанию, default). Вот как в итоге будет выглядеть первый элемент раздела.
При желании можно настраивать поле дальше, добавив тип отображаемой клавиатуры, тип корректировки, защитив параметры и активировав автоматическую простановку заглавных букв.
Ключ: 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"]; |
Загрузим приложение — и на экране высветятся сплошные нули. Похоже, несмотря на заданные по умолчанию значения, нужен дополнительно прописать код для их активизации при загрузке. Подробнее об этом — в следующей части.
В этом уроке я создал новый вид и контроллер для него. В этом режиме отображаются все значения настроек.






Последние комментарии
Всем ! Заходите на Фан-Футбол...
Windows Phone MarketPlace -...
Планируем приобрести дробемет и...
Как добавить в...
currentTitle = [[NSMutableString alloc] init];...