【发布时间】:2018-02-20 11:34:20
【问题描述】:
我有一个包含 3 个静态单元格的 tableViewController。 每个单元格都有一个 UITextField。
我正在尝试计算每个 textField 中的文本长度以启用或禁用按钮。
为此,我使用了 textField 委托方法
-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;
}
【问题讨论】:
-
你有3个UITextFields,你需要使用哪个条件启用和禁用一个按钮???我认为你的第一个 if 语句永远不会是真的,因为同一个 UItextField 不能同时等于一个和等于另一个,如果你提供一个明确的答案来说明你遵循哪些标准,我可以为此提供答案我认为
-
@ReinierMelian 所以......我正在创建一个 tableviewcontroller 来为我的应用程序注册用户。我希望这个 tableView 控制器显示 3 个文本字段来输入用户名、电子邮件和密码。当键盘出现时,上面有一个键(“继续下一步”),这个键删除了tableView控制器并呈现了一个新的视图控制器,用于下一步的录制。
-
@ReinierMelian 示例:只有在填写了所有三个文本字段(名称至少 2 个字符、电子邮件至少 2 个字符、密码至少 6 个字符)时,我才需要启用按钮。当这些文本字段之一包含字符少于所需字符的文本时,必须禁用该按钮。即使用户使用文本字段的清除按钮或按钮删除键盘字符,这种情况也必须发生
-
好的,我会审核的
标签: ios objective-c xcode uitableview uitextfield