我假设你在这里的主要挑战不是简单地检查UITextField
的text
属性是否为空,里面的文字,但得到它来执行检查用户类型。为了简单地检查文本字段是否为空,你只是做:
if (aTextField.text == nil || [aTextField.text length] == 0)
但是,如果你想获得文本字段设置为“自动”进行计算时,它变空,请执行下列操作:设置UITextField
的代表。在文本字段中更改任何字符之前调用代理的textField:shouldChangeCharactersInRange:replacementString:
方法。在该方法中,这样做:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
[self performSelector:@selector(updateEmptyTextField:) withObject:textField afterDelay:0];
return YES;
}
您的延迟之后执行updateEmptyTextField
因为UITextField
尚未应用于其代表刚刚批准的变化。然后,在updateEmptyTextField:
做这样的事情:
- (void)updateEmptyTextField:(UITextField *)aTextField {
if (aTextField.text == nil || [aTextField.text length] == 0) {
// Replace empty text in aTextField
}
}
注:直到用户开始在文本字段中键入您可能需要手动运行一次检查时,首先显示您的看法,因为textField:shouldChangeCharactersInRange:replacementString:
将不会被调用。
伟大的职位非常感谢 – 2010-10-10 19:30:01
不能使用[self updateEmptyTextField:textField];直接代替[self performSelector:@selector(updateEmptyTextField :) withObject:textField afterDelay:0];? – 2011-01-31 14:13:54