在我的 iOS
应用程序中,我目前有 2 个名为 usernameTextField 和 pINTextField 的 UITextField
。由于两者之一的长度必须为 4 位数字,因此我使用此代码来限制 pINTextField 的长度。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (self.pINTextField.text.length >= 4 && range.length == 0)
{
return NO;
}
return YES;
}
奇怪的是,当用户在 pINTextField 中键入 4 位数字时,这段代码也会禁用 usernameTextField 但我希望 usernameTextField 甚至是“可键入的”用户输入 PIN 码后。
换句话说:我只想限制两个 UITextField
之一,而不限制另一个。
你能帮帮我吗?
最佳答案
1) 如果您还没有为您的文本字段定义 IBoutlet,请创建它们。
2) 然后您可以选择所需的文本字段,如下所示:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (self.pINTextField == textField)
{
if (textField.text.length >= 4 && range.length == 0)
{
return NO;
}
}
return YES;
}
为此目的使用标签非常脆弱。将来可能会有人出现并修改 nib 中文本字段的标签,而没有意识到它与此行为有关。
关于ios - 如何只阻止一个 UITextField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25248213/