Как отключить / включить все текстовые поля в контроллере вида - PullRequest
1 голос
/ 18 февраля 2011

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

- (void)activateTextFields:(BOOL)activate {
    [firstTextField setUserInteractionEnabled:activate];
    [secondTextField setUserInteractionEnabled:activate];
    ...
    [lastTextField setUserInteractionEnabled:activate];
}

Однако мне интересно, есть ли лучший способ (учитывая огромное количество полей) сделать это с помощью одной строки, которая отключит / включит все текстовые поля одновременно.

Спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 18 февраля 2011

Вы можете поместить прозрачный вид поверх всех текстовых полей с включенным userInteraction, что бы «перехватывать» все касания и мешать им переходить к текстовым полям.

Редактировать: это, вероятно, лучше:просто верните NO из этого метода:

textFieldShouldBeginEditing: спрашивает делегата, должно ли редактирование начинаться в указанном текстовом поле.

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField Параметры textField Текстовое поле, для которого требуется редактированиеначать.Возвращаемое значение YES, если сеанс редактирования должен быть начат;в противном случае НЕТ, чтобы запретить редактирование.

Таким образом, есть только один бит состояния, который нужно изменить, логическое свойство yourTextFieldsAllowEditing вашего класса.

0 голосов
/ 14 марта 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...