Кроме того, вид-предупреждение можно использовать и для текстового ввода, например, запрашивая у пользователя номер кредитной карточки или адрес. Для этого, как было указано ранее, нужно использовать стиль оформления предупреждения UIAlertViewStylePlainTextInput:


>– (void) viewDidAppear:(BOOL)animated{

>[super viewDidAppear: animated];


>UIAlertView *alertView = [[UIAlertView alloc]

>initWithTitle:@"Credit Card Number"

>message:@"Please enter your credit card number: "

>delegate: self

>cancelButtonTitle:@"Cancel"

>otherButtonTitles:@"OK", nil];

>[alertView setAlertViewStyle: UIAlertViewStylePlainTextInput];

>/* Отобразить для этого текстового поля числовую клавиатуру. */

>UITextField *textField = [alertView textFieldAtIndex:0];

>textField.keyboardType = UIKeyboardTypeNumberPad;

>[alertView show];


>}

Если сейчас запустить приложение в эмуляторе, то мы увидим такое изображение, как на рис. 1.4.


Рис. 1.4. Вид-предупреждение для ввода обычным текстом


В этом коде мы изменяем стиль оформления вида на UIAlertViewStylePlainTextInput, а также делаем еще кое-что. Мы получили ссылку на первое и единственное текстовое поле, которое, как мы знаем, будет присутствовать в виде-предупреждении. Ссылку на текстовое поле применили для того, чтобы изменить тип клавиатуры, связанной с текстовым полем. Подробнее о текстовых полях поговорим в разделе 1.19.

Кроме обычного текста мы можем попросить пользователя набрать и защищенный текст. Как правило, защищается такой текст, который является для пользователя конфиденциальным, например пароль (рис. 1.5). Рассмотрим пример:


>– (void) viewDidAppear:(BOOL)animated{

>[super viewDidAppear: animated];


>UIAlertView *alertView = [[UIAlertView alloc]

>initWithTitle:@"Password"

>message:@"Please enter your password: "

>delegate: self

>cancelButtonTitle:@"Cancel"

>otherButtonTitles:@"OK", nil];


>[alertView setAlertViewStyle: UIAlertViewStyleSecureTextInput];

>[alertView show];


>}


Рис. 1.5. Ввод защищенного текста в окно с предупреждением


Стиль UIAlertViewStyleSecureTextInput очень напоминает UIAlertViewStylePlainTextInput, за исключением того, что вместо символов текста мы подставляем какие-то нейтральные символы.

Следующий стиль довольно полезный. Он позволяет отобразить два текстовых поля: одно для имени пользователя, а другое – для пароля. Текст в первом поле открыт, а во втором – скрыт:


>– (void) viewDidAppear:(BOOL)animated{

>[super viewDidAppear: animated];


>UIAlertView *alertView = [[UIAlertView alloc]

>initWithTitle:@"Password"

>message:@"Please enter your credentials: "

>delegate: self

>cancelButtonTitle:@"Cancel"

>otherButtonTitles:@"OK", nil];


>[alertView setAlertViewStyle: UIAlertViewStyleLoginAndPasswordInput];

>[alertView show];


>}


В результате увидим такое изображение, как на рис. 1.6.


Рис. 1.6. Стиль, позволяющий вводить в вид-предупреждение имя пользователя и пароль

См. также

Раздел 1.19.

1.2. Создание и использование переключателей с помощью UISwitch

Постановка задачи

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

Решение

Воспользуйтесь классом UISwitch.

Обсуждение

Класс UISwitch предоставляет инструмент управления ON/OFF (Вкл./Выкл.), как на рис. 1.7. Этот инструмент используется для работы с автоматической капитализацией, автоматическим исправлением орфографических ошибок и т. д.


Рис. 1.7. Переключатель UISwitch, применяемый в приложении Settings (Настройки) в iPhone


Создать переключатель можно либо с помощью конструктора интерфейса, либо сделав экземпляр такого переключателя в коде. Решим эту задачу вторым способом. Итак, следующая проблема – определить, в каком классе разместить соответствующий код. Это должен быть класс View Controller (Контроллер вида), который мы еще не изучали, но, поскольку в этой главе мы создаем программу типа Single View Application (Приложение с единственным видом), файл реализации (.m) контроллера вида будет называться ViewController.m. Откроем этот файл.