gpt4 book ai didi

ios - 启用/禁用 UIButton 取决于 UITextField 中文本的长度

转载 作者:行者123 更新时间:2023-11-29 00:03:10 24 4
gpt4 key购买 nike

我有一个包含 3 个静态单元格的 tableViewController。每个单元格都有一个 UITextField。

我正在尝试计算每个文本字段中文本的长度以启用或禁用按钮。

为此,我使用了 textField 委托(delegate)方法

-textField:shouldChangeCharactersInRange:replacementString:

但我无法获得正确的值,例如在密码字段中,我想在长度超过 6 个字母时启用按钮,而在长度小于 6 个字母时禁用按钮。

目前我无法获得正确的长度,例如要禁用密码字段中的按钮我需要达到 3 个字符,否则它不会被禁用。这对我来说是错误的,因为当字符少于 6 个时,按钮必须禁用。

这是我的代码,你能解释一下我哪里错了吗?

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

if ([self.passwordTextField.text length] >6 && [self.nameTextField.text length] >2 && [self.emailTextField.text length] >2) [self.stepCompleted setEnabled:YES];

else if ([self.passwordTextField.text length] <6 || [self.nameTextField.text length] <2 || [self.emailTextField.text length] <2) [self.stepCompleted setEnabled:NO];


return YES;
}

最佳答案

首先,您需要检查 textfield == self.passwordTextField 或任何其他文本字段是否包含,然后应用您的条件。

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (string==nil || [string isEqualToString:@""] || [string isKindOfClass:[NSNull class]] || string.length < 1)
{
if([self.nameTextField.text length] < 2 || [self.emailTextField.text length] < 2 || [self.passwordTextField.text length] < 6)
{
[self.stepCompleted setEnabled:NO];
}
}
else if(textField == self.passwordTextField && [self.passwordTextField.text length] > 6)
{
if([self.nameTextField.text length] > 2 && [self.emailTextField.text length] > 2)
{
[self.stepCompleted setEnabled:YES];
}
else
{
[self.stepCompleted setEnabled:NO];
}
}
else if(textField == self.nameTextField && [self.nameTextField.text length] > 2)
{
if([self.passwordTextField.text length] > 6 && [self.emailTextField.text length] > 2)
{
[self.stepCompleted setEnabled:YES];
}
else
{
[self.stepCompleted setEnabled:NO];
}
}
else if(textField == self.emailTextField && [self.emailTextField.text length] > 2)
{
if([self.nameTextField.text length] > 2 && [self.passwordTextField.text length] > 6)
{
[self.stepCompleted setEnabled:YES];
}
else
{
[self.stepCompleted setEnabled:NO];
}
}
return YES;
}

关于ios - 启用/禁用 UIButton 取决于 UITextField 中文本的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48884393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com