我有一个包含10个以上文本字段的表单。我想检查是否所有输入。我知道以下检查相同的方法
if ([_fName.text isEqualToString:@""])
即使我们有超过10个文本字段,这是最好的方法吗?或者有更简单的方法吗?比如在故事板中分配什么东西?
答案 0 :(得分:1)
您可以使用textFieldDidEndEditing跟踪文字:
- (void)textFieldDidEndEditing:(UITextField *)textField {
switch (textField.tag) {
case NameFieldTag:
// do something with this text field
break;
case EmailFieldTag:
// do something with this text field
break;
}
}
答案 1 :(得分:1)
您可以将视图控制器符合<UITextFieldDelegate>
协议并实施:
- (void)textFieldDidEndEditing:(UITextField *)textField {
if ([textField.text isEqualToString:@""]) {
// your code
}
}
此外,您可以检查textField的确切位置,并应用自定义验证逻辑:
- (void)textFieldDidEndEditing:(UITextField *)textField {
if (textField == self._fName) {
// your code
}
}
答案 2 :(得分:0)
我建议你做类似下面的事情。请注意,您可能希望做的不仅仅是验证字段中是否存在某些内容。您可能还想检查日期,数字等的有效性。
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
// assuming you have a save bar button or equivalent
// disable it or change it from 'Edit' to 'Save' when you start changing textFields
self.navigationItem.rightBarButtonItem.enabled = NO;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
// validate form
if (_textField1.text.length > 0 &&
_textField2.text.length > 0 &&
_textField3.text.length > 0 &&
_textField4.text.length > 0 &&
_textField5.text.length > 0)
{
// Re-enable your bar button or change it from 'Edit' to 'Save'
// if form validates
self.navigationItem.rightBarButtonItem.enabled = YES;
}
}