【问题标题】:Limiting UITextField to a certain character range将 UITextField 限制在某个字符范围内
【发布时间】:2012-05-01 11:00:33
【问题描述】:

谁能帮我找出一种简单的方法来限制 UITextField 范围,使输入的数字介于 14 和 70 之间,如果数字大于或小于范围内的数字,则文本字段会自行清除?我已经将输入文本的长度限制为不超过 2 个字符,如下所示:

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

剩下的唯一事情就是实现这个行为。有人吗?

【问题讨论】:

  • 使用正则表达式。
  • 如果你能对 cme​​ts 投反对票,我肯定会这样做。

标签: objective-c ios uitextfield uitextviewdelegate


【解决方案1】:

更新:

  NSInteger v = [newString integerValue];
 if (v < 14 || v > 72) {
// Do whatever you do when the string value is invalid
// BUT ALSO ADD:
textView.text = @"";
}

而不是返回尝试:

   if (newString.length != 2) {
  // do what you want!
return;
} else {
// PUT YOUR CODE HERE
}

【讨论】:

  • 现在很好,但是当我输入一个值时,比如 10,它只会删除第一个数字,在文本字段中留下“0”,从而可以输入 0 :(
  • 主要问题出在代码 return !([newString length] &gt; 2); 中,它确实限制了超过 2 位的数字,但它允许输入一位数字。那么有没有可能以某种方式改变呢? :(
  • 现在它根本不允许我输入任何数字:(
  • 做了一个愚蠢的粗心错误检查更新评论答案
  • return !([newString length] == 2)return ([newString length] == 2) 都没有任何作用 :( 由于我的固执,我注定要失败 :(
猜你喜欢
  • 1970-01-01
  • 2021-12-02
  • 2015-04-06
  • 2017-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多