私は、すべてUITextField
の s が入力された後にのみボタンが有効になる iOS アプリケーションに取り組んでいます (つまり、それぞれの中に少なくとも 1 つの文字があります)。それぞれUITextField
が のカスタムUITableViewCell
内にありUITableView
ます。ユーザーが各UITextField
に値を入力したら、ボタンを有効にする必要があります。メソッド内で、viewDidLoad
次のようにボタンを無効にします。
[_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;
}
残念ながら、私のコードは、カスタム セルに type の subView があるかどうかを確認する「if」句に入らず、UITextField
そのため、ボタンが有効になりません。記録として、「SimpleTableCell」はUITableViewCell
私が作成したカスタム クラスの名前です。私のコードは正しいように見えますが、正しく機能しない理由がわかりません。誰かが私が間違っていることを見ることができますか?