我正在处理包含多个TextFields的应用程序,有没有办法在提交之前立即验证所有字段以检查它们是否都是空的。我能够逐个验证。
答案 0 :(得分:1)
NSArray *viewsToRemove = [self.view subviews];
for (UIView *v in viewsToRemove)
{
if([v isKindOfClass:[UITextField class]])
{
UITextField *txt=(UITextField *)v;
//check for spaces
NSString *str=[txt.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet
if([str length]<=0)
{
//raise the error
//To raise the proper error, check for the tag by assigning tag to each textfield in xib.
}
}
}
确保逻辑不会减慢您的应用程序。 否则一个接一个地验证...
答案 1 :(得分:1)
如果您使用storyboard / xib文件,则将所有文本字段连接到IBOutletCollection,而不是将每个文本字段连接到不同的IBOutlet。 IBOutletCollection提供了一组文本字段,因此您可以使用枚举进行验证。
答案 2 :(得分:0)
试试这个 在下面的代码中,你可以在视图中找到所有textfeild,然后检查它是空白还是空。
- (IBAction)SubmitTapped:(id)sender {
for (UIView *view in self.view.subviews) {
if ([view isKindOfClass:[UITextField class]]) {
UITextField *textField = (UITextField *)view;
if([textField.text length]==0){
NSLog(@"Please fill...");
}
}
}
}
答案 3 :(得分:0)
以下代码段对我有用:
// Get the subviews of the view
NSArray *listOfSubviews = [self.view subviews];
// Return if there are no subviews
if ([listOfSubviews count] == 0) return;
for (UIView *view in listOfSubviews) {
if([view isKindOfClass:[UITextField class]]) { // Check for UITextField view
UITextField *txtTextField = (UITextField *) view;
if ((txtTextField.text.length != 0) || [txtTextField.text isEqualToString:@""]) {
// textfield is empty
}
else {
// textfield is not empty
}
}
}