iOS. Приемы программирования - стр. 24
>[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. Откроем этот файл.
Создадим свойство типа UISwitch и назовем его mainSwitch:
>#import "ViewController.h"
>@interface ViewController ()
>@property (nonatomic, strong) UISwitch *mainSwitch;
>@end
>@implementation ViewController
>…
>Теперь перейдем к файлу реализации контроллера вида (файлу. m) и синтезируем свойство mySwitch:
>#import "Creating_and_Using_Switches_with_UISwitchViewController.h"
>@implementation Creating_and_Using_Switches_with_UISwitchViewController
>@synthesize mySwitch;
>…
Можно продолжить и перейти к созданию переключателя. Найдем метод viewDidLoad в файле реализации нашего контроллера вида:
>– (void)viewDidLoad{
>[super viewDidLoad];
>}
>Создадим переключатель и поместим его в виде, в котором находится контроллер нашего вида:
>– (void)viewDidLoad{
>[super viewDidLoad];
>/* Создаем переключатель */
>self.mainSwitch = [[UISwitch alloc] initWithFrame:
>CGRectMake(100, 100, 0, 0)];
>[self.view addSubview: self.mainSwitch];
>}
Итак, мы выделили объект типа UISwitch и применили метод initWithFrame: для инициализации переключателя. Обратите внимание: параметр, который мы должны передать этому методу, относится к типу CGRect. CGRect определяет границы прямоугольника, отсчитывая их от точки с координатами (x; y), находящейся в левом верхнем углу прямоугольника, и также используя данные о его ширине и высоте. Можно создать CGRect, воспользовавшись встраиваемым методом CGRectMake, где первые два параметра, передаваемые методу, – это координаты (