- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的 UItextField。在这一个我想只有 4 个数字(字符串)。如果此字符串不等于另一个字符串,则应清除输入(完美运行)。但在 shouldChangeCharactersInRange 中,最后一个数字仍然存在,代表新字符串中的第一个数字。
如何清除所有内容并将 shouldChangeCharactersInRange 设置为基本位置?
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == passcodeTextfield)
{
NSString *passcode = [textField.text stringByReplacingCharactersInRange:range withString:string];
if (passcode.length == 0)
{
firstPasscodeDigitTextfield.text = @"";
}
else if (passcode.length == 1)
{
firstPasscodeDigitTextfield.text = @"\u25cf";
secondPasscodeDigitTextfield.text = @"";
}
else if (passcode.length == 2)
{
secondPasscodeDigitTextfield.text = @"\u25cf";
thirdPasscodeDigitTextfield.text = @"";
}
else if (passcode.length == 3)
{
thirdPasscodeDigitTextfield.text = @"\u25cf";
fourthPasscodeDigitTextfield.text = @"";
}
else if (passcode.length == 4)
{
fourthPasscodeDigitTextfield.text = @"\u25cf";
[self verifyPasscode:passcode];
}
else if (passcode.length > 4)
{
return NO;
}
}
return YES;
}
- (void)verifyPasscode:(NSString *)passcode
{
if ([passcode isEqualToString:@"4277"])
{
[passcodeTextfield resignFirstResponder];
[self dismissViewControllerAnimated:YES completion:nil];
}
else
{
[passcodeTextfield resignFirstResponder];
[passcodeTextfield becomeFirstResponder];
[self textFieldShouldClear:passcodeTextfield];
}
}
- (BOOL)textFieldShouldClear:(UITextField *)textField
{
if (textField == passcodeTextfield)
{
passcodeTextfield.text = @"";
firstPasscodeDigitTextfield.text = @"";
secondPasscodeDigitTextfield.text = @"";
thirdPasscodeDigitTextfield.text = @"";
fourthPasscodeDigitTextfield.text = @"";
}
return YES;
}
最佳答案
我认为你应该这样做:
1) 当您为点(firstPasscodeDigitTextfield 等)创建 View 时,为它们设置标签:0,1,2,3
2) 当她更改时从 passwordTextField 中获取整个字符串值
3) 获取字符串的长度
4)实现功能:
-(void)setNpointsToView:(NSUInteger)n
{
//getting your views and set point to them
for (int i = 0; i < n; ++i)
{
[[self.view viewWithTag:i] setText: @"\u25cf"];
}
//set "" to other views
for (int i = n; i < 3; ++i)
{
[[self.view viewWithTag:i] setText" @""];
}
}
5) 每次使用 ((字符串的长度) - 1) 作为参数更改 passwordTextField 中的文本时调用此函数
6) 实现:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == passcodeTextfield)
{
NSString *passcode = [textField.text stringByReplacingCharactersInRange:range withString:string];
if (passcode.length > 3)
return NO;
}
}
关于iOS:shouldChangeCharactersInRange 返回旧结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22157902/
我试图在将价格和数量乘以文本字段后获得总值(value)。当数量为 10 或有任何两位或三位数字时,我没有得到值。这种方法一次只需要一个字符。 - (BOOL)textField:(UITextFie
我正在实现一个文本字段来输入用户密码。我正在尝试将存储密码的长度与用户输入的密码相匹配。当长度匹配时,我尝试验证密码。如果密码不匹配或长度大于存储值,那么我会尝试清除文本字段(else-if),但最后
我在警报 View 中有一个名为 phoeNumberTF 的文本字段。 phoneNumberTF.delegate = self; UIAlertController *alert = [UIAl
我有一个简单的 UItextField。在这一个我想只有 4 个数字(字符串)。如果此字符串不等于另一个字符串,则应清除输入(完美运行)。但在 shouldChangeCharactersInRang
我正在使用以下 textfield delegate 来验证用户输入。 假设 currentTotal 等于 30.00 美元,每当用户输入 两次 等于或大于 currentTotal 并且我正在尝试
如果我实现方法shouldChangeCharactersInRange范围值和文本大小之间存在某种不一致。当我的文本字段只有一个普通字母(如“a”)并按退格键时,要替换的文本是一个空字符串,text
我有必须调用的方法来检查手机号码范围和其他格式。但是这个方法没有被调用:( -(BOOL)textField:(UITextField *)textField shouldChangeCharacte
有时,当我只点击一个字符时,shouldChangeCharactersInRange 会被调用两次。 例如,我输入“avion par c”,程序被调用并添加我第二个“c”结果是“avion par
用解决方案更新了下面的代码。 这适用于您想要的任意多个字段。 它还修复了该方法返回 false 时文本框卡住的问题。 下面这行是引导方法在返回 false 后返回 true 的内容。 newStrin
我正在使用rangeofString和textfield:shouldChangeCharactersinRange:来限制将在文本字段中有效的击键类型。 -(BOOL) textField:(UIT
问题: 文本字段不接受字符。 shouldChangeCharactersInRange 未针对所有 3 个文本字段调用。 我有 3 个委托(delegate)类的实现,就像在 main 中一样。所有
是否可以在两个不同的位置设置 textFieldShouldReturn 和 shouldChangeCharactersInRange。 目前我在一个单独的文件中使用 shouldChangeCha
您好,我想在用户在文本字段中输入文本时验证电子邮件地址。当错误的电子邮件然后显示警报并返回否以留在电子邮件文本字段中时,它正在处理返回和文本字段结束编辑但不处理文本字段 shouldChangeCha
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementSt
我有一个 UITextField,带有一个清除按钮并启用了自动更正。如果我输入“Thg”,自动更正会提示“The”。现在,如果我按下清除按钮,textFieldShouldClear 会被调用,然后
我有一个表格 View 。在 cellForRowAtIndexPath 中,我有一个单元格,在该单元格中有 UITextField。我这样设置文本字段的委托(delegate):cell.textF
我有一个 UITextField,我正在尝试将其格式化为电话号码,但由于某种原因,我正在努力获取 UITextField 的第一个字母。 func textField(textField: UITex
这是我的代码: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range repl
我有一个 textField,用户可以在其中输入电子邮件地址。我想在输入文本成为有效电子邮件地址的那一刻激活提交按钮。 验证有效,但 shouldChangeCharactersInRange 中的代
我正在处理包含 4 个文本字段的注册页面。其中一个 text fields 用作 Picker-view,当用户 tap 它时,一个 picker-view 将弹出,其中包含可供选择的选项。 问题是我
我是一名优秀的程序员,十分优秀!