iOS. Приемы программирования - стр. 22
>UIAlertViewStyleSecureTextInput,
>UIAlertViewStylePlainTextInput,
>UIAlertViewStyleLoginAndPasswordInput
>};
Вот что делает каждый из этих стилей:
• UIAlertViewStyleDefault – стандартный стиль вида-предупреждения, подобное оформление мы видели на рис. 1.2;
• UIAlertViewStyleSecureTextInput – при таком стиле в виде-предупреждении будет содержаться защищенное текстовое поле, которое станет скрывать от зрителя символы, вводимые пользователем. Такой вариант предупреждения вам подойдет, например, если вы запрашиваете у пользователя его учетные данные для дистанционного банковского обслуживания;
• UIAlertViewStylePlainTextInput – при таком стиле у пользователя будет отображаться незащищенное текстовое поле. Этот стиль отлично подходит для случаев, когда вы просите пользователя ввести несекретную последовательность символов, например номер его телефона;
• UIAlertViewStyleLoginAndPasswordInput – при таком стиле в виде-предупреждении будет два текстовых поля: незащищенное – для имени пользователя и защищенное – для пароля.
Если вам необходимо получать уведомление, когда пользователь начинает работать с видом-предупреждением, укажите объект-делегат для вашего предупреждения. Этот делегат должен подчиняться протоколу UIAlertViewDelegate. Самый важный метод, определяемый в этом протоколе, – alertView: clickedButtonAtIndex:, который вызывается сразу же, как только пользователь нажимает на одну из кнопок в виде-предупреждении. Индекс нажатой кнопки передается вам через параметр clickedButtonAtIndex.
В качестве примера отобразим предупреждение пользователю и спросим, хочет ли он перейти на сайт в браузере Safari после того, как нажмет ссылку на этот сайт, присутствующую в нашем пользовательском интерфейсе. В предупреждении будут отображаться две кнопки: Yes (Да) и No (Нет). В делегате вида-предупреждения мы увидим, какая кнопка была нажата, и предпримем соответствующие действия.
Сначала реализуем два очень простых метода, которые возвращают надпись на той или иной из двух кнопок:
>– (NSString *) yesButtonTitle{
>return @"Yes";
>}
>– (NSString *) noButtonTitle{
>return @"No";
>}
>Теперь нужно убедиться, что контроллер нашего вида подчиняется протоколу UIAlertViewDelegate:
>#import
>#import "ViewController.h"
>@interface ViewController ()
>@end
>@implementation ViewController
>…
Следующий шаг – создать и отобразить для пользователя окно с предупреждением:
>– (void)viewDidAppear:(BOOL)animated{
>[super viewDidAppear: animated];
>self.view.backgroundColor = [UIColor whiteColor];
>NSString *message = @"Are you sure you want to open this link in Safari?";
>UIAlertView *alertView = [[UIAlertView alloc]
>initWithTitle:@"Open Link"
>message: message
>delegate: self
>cancelButtonTitle: [self noButtonTitle]
>otherButtonTitles: [self yesButtonTitle], nil];
>[alertView show];
>}
Вид-предупреждение будет выглядеть примерно как на рис. 1.3.
Рис. 1.3. Вид-предупреждение с кнопками No (Нет) и Yes (Да)
Далее нужно узнать, какой вариант пользователь выбрал в нашем окне – No (Нет) или Yes (Да). Для этого потребуется реализовать метод alertView: clickedButtonAtIndex:, относящийся к делегату нашего вида-предупреждения:
>– (void) alertView:(UIAlertView *)alertView
>clickedButtonAtIndex:(NSInteger)buttonIndex{
>NSString *buttonTitle = [alertView buttonTitleAtIndex: buttonIndex];