ios - 如果输入的值超过指定的整数,则清除 UITextField

标签 ios objective-c

我正在查看输入到 UITextField 中的值是否超过 100。
我正在使用 textField:shouldChangeCharactersInRange:replacementString: (下面的代码)将输入的字符长度限制为 3。我想知道如果输入超过 100 的值,是否有办法搭载此方法来清除输入。

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    return !([newString length] >3);
}

最佳答案

你有文本字段,所以你可以写

if([newString length] > 3]) {
textField.text = @"";
}

return YES;

编辑:

看来您真正想要的是输入验证和检查大于 100 的数字,下次您应该在问题中澄清,因为它是模棱两可的。

1.) 验证输入是一个数字
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string {
      NSCharacterSet* numberSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789."];
      return ([string stringByTrimmingCharactersInSet:numberSet].length == 0);
}

2.) 通过 IB 或代码将 UITextField 的“Editing Changed”Action 连接到此方法
- (IBAction)textFieldDidChange:(UITextField*)textField {
    NSString* text = textField.text;
    double number = [text doubleValue];

    if(number > 100)
         textField.text = @"";
}

3.) 在设置文本字段时添加此代码以将其连接到方法
[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

关于ios - 如果输入的值超过指定的整数,则清除 UITextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24641585/

相关文章:

ios - iOS 上类似 Google Now 的界面

ios - 为什么 iPad 不会在结束编辑时关闭选择器 View ,但 iPhone 会

ios - Xcode UI测试的一个测试用例中的Delay/Wait

iphone - iPhone 中的日志文件大小

ios - uitableview如何动态解析数据多单元格

ios - CGcontext 和 drawRect 不绘图

ios - 在 iOS Swift 中将 NSDate 转换为字符串

ios - UIImageView 不遵循设备方向

ios - 如何创建具有不同颜色的贝塞尔曲线路径?

ios - 添加 pod 时终端出错 - [!] 无效的 Podfile 文件 : The target Pods-MyApp already has a platform set