Iphone 如何检测uitextfield长度
我试图获取uitextfield是否为空,以及它是否要在iAction中运行以下代码Iphone 如何检测uitextfield长度,iphone,uitextfield,Iphone,Uitextfield,我试图获取uitextfield是否为空,以及它是否要在iAction中运行以下代码 float uu = ([u.text floatValue]); float ss = ([s.text floatValue ]); float aa = ([a.text floatValue ]); float x1float = sqrt((uu * uu) +(2*aa*ss)); v.text = [[NSString alloc]initWithFormat:@"%f", x1float
float uu = ([u.text floatValue]);
float ss = ([s.text floatValue ]);
float aa = ([a.text floatValue ]);
float x1float = sqrt((uu * uu) +(2*aa*ss));
v.text = [[NSString alloc]initWithFormat:@"%f", x1float];
其中v.text是uitextfield中的文本我假设这里的主要挑战不是简单地检查
uitextfield
的text
属性是否为空,而是让它在用户键入时执行该检查。要简单地检查文本字段是否为空,只需执行以下操作:
if (aTextField.text == nil || [aTextField.text length] == 0)
但是,如果试图让文本字段在变为空时“自动”执行计算,请执行以下操作:为UITextField
设置委托。在更改文本字段中的任何字符之前,将调用代理的textField:shouldChangeCharactersRange:replacementString:
方法。在该方法中,执行以下操作:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
[self performSelector:@selector(updateEmptyTextField:) withObject:textField afterDelay:0];
return YES;
}
由于UITextField
尚未应用其代表刚刚批准的更改,因此在延迟后执行updateEmptyTextField
。然后,在updateEmptyTextField:
中执行以下操作:
- (void)updateEmptyTextField:(UITextField *)aTextField {
if (aTextField.text == nil || [aTextField.text length] == 0) {
// Replace empty text in aTextField
}
}
注意:首次显示视图时,可能需要手动运行检查一次,因为
textField:shouldChangeCharactersRange:replacementString:
在用户开始在文本字段中键入之前不会被调用。我假设您在这里的主要挑战不是简单地检查UITextField
的文本属性是否为空,但是让它在用户输入时执行检查。要简单地检查文本字段是否为空,只需执行以下操作:
if (aTextField.text == nil || [aTextField.text length] == 0)
但是,如果试图让文本字段在变为空时“自动”执行计算,请执行以下操作:为UITextField
设置委托。在更改文本字段中的任何字符之前,将调用代理的textField:shouldChangeCharactersRange:replacementString:
方法。在该方法中,执行以下操作:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
[self performSelector:@selector(updateEmptyTextField:) withObject:textField afterDelay:0];
return YES;
}
由于UITextField
尚未应用其代表刚刚批准的更改,因此在延迟后执行updateEmptyTextField
。然后,在updateEmptyTextField:
中执行以下操作:
- (void)updateEmptyTextField:(UITextField *)aTextField {
if (aTextField.text == nil || [aTextField.text length] == 0) {
// Replace empty text in aTextField
}
}
注意:在首次显示视图时,您可能需要手动运行检查一次,因为用户开始在文本字段中键入内容之前,不会调用textField:shouldChangeCharactersRange:replacementString:
。我们不能只使用[self-updateEmptyTextField:textField];直接代替[self-performSelector:@selector(updateEmptyTextField:)和Object:textField afterDelay:0];?我们不能只使用[self-updateEmptyTextField:textField];直接代替[self-performSelector:@selector(updateEmptyTextField:)和Object:textField afterDelay:0];?