Я работаю над приложением iOS
, где кнопка включена только после заполнения всех UITextField
s (то есть имеют по крайней мере один символ внутри каждого). Каждый UITextField
находится в обычном UITableViewCell
внутри UITableView
. Как только пользователь ввел значение в каждом UITextField
, мне нужно, чтобы кнопка была включена. К сожалению, я сейчас борюсь с этой проблемой. Внутри моего viewDidLoad
метода, отключить кнопку следующим образом:UIButton не включается, когда все поля UITextField заполняются в
[_doneButton setEnabled:NO];
, а затем у меня есть следующий метод:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
for (int i = 0; i < [self.table numberOfSections]; i++) {
NSInteger rows = [self.table numberOfRowsInSection:i];
for (int row = 0; row < rows; row++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:i];
SimpleTableCell *cell = (SimpleTableCell *)[self.table cellForRowAtIndexPath:indexPath];
for (UIView *subView in cell.subviews) {
if ([subView isKindOfClass:[UITextField class]]) {
//Does not come to this point
UITextField *txtField = (UITextField *)subView;
if([[txtField text] length] > 0) {
//Enable button and bold title
[_doneButton setEnabled:YES];
[_doneButton.titleLabel setFont:[UIFont boldSystemFontOfSize:28]];
}
else {
[_doneButton setEnabled:NO];
}
}
}
}
}
return YES;
}
К сожалению, мой код не попасть в «если» пункта где я проверяю чтобы убедиться, что пользовательская ячейка имеет subView типа UITextField
, и из-за этого кнопка никогда не включается. Для записи «SimpleTableCell» - это имя моего настраиваемого класса UITableViewCell
, который я создал. Мой код кажется правильным, но я не могу понять, почему он работает неправильно. Кто-нибудь может понять, что я делаю неправильно?
Заранее благодарим всех, кто отвечает.
thi может быть поможет: http: //stackoverflow.com/questions/13015348/table-cell-subview-iteration-not-finding-textfield –