Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何检测uitextfield长度_Iphone_Uitextfield - Fatal编程技术网

Iphone 如何检测uitextfield长度

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

我试图获取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];

其中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];?