изменение атрибутов в коллекции UITextFields - PullRequest
1 голос
/ 06 октября 2011

У меня есть коллекция UITextFields в представлении. Мне нужно потом отключить все, а потом включить их. В настоящее время я меняю каждый в отдельности. Есть ли способ сделать это программно в цикле? ТИА.

Ответы [ 3 ]

1 голос
/ 06 октября 2011
Use this it will help you enabled=NO or YES

for(id viewid in [self.view subviews])
    {
        if([viewid isKindOfClass:[UITextField class]])
        {
           UITextField *txt_temp = (UITextField *)viewid;
           txt_temp.enabled=NO;
         }
    }
0 голосов
/ 06 октября 2011
NSArray *array = [view subviews];

Отключить подпредставления:

[array makeObjectsPerformSelector:@selector(setEnabled:) withObject:(id)NO];

Включить подпредставления:

[array makeObjectsPerformSelector:@selector(setEnabled:) withObject:(id)YES];

Обратите внимание на withObject: параметр здесь.Просто приведите логические константы ДА или НЕТ к id , когда вы применяете типы объектов!

0 голосов
/ 06 октября 2011

Предполагая, что ваши UITextField экземпляры хранятся в коллекции под названием myFieldCollection, вы можете сделать что-то вроде:

- (void) disableFields {
    for (UITextField* field in myFieldCollection) {
        field.enabled = NO;
    }
}

- (void) enableFields {
    for (UITextField* field in myFieldCollection) {
        field.enabled = YES;
    }
}

Я предполагаю, основываясь на вашем вступительном заявлении, что они уже есть в коллекции. Если вы этого не сделаете, вы можете легко использовать Интерфейсный Разработчик, чтобы настроить «Коллекцию ссылок на розетки» для текстовых полей.

Чтобы использовать методы, описанные выше, вы просто должны сделать:

//disable
[self disableFields];

//enable
[self enableFields];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...