设置多个文本字段的最大长度

尼古拉斯·吉布森(Nicholas Gibson)

我从另一个堆栈溢出帖子中找到了此代码

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSUInteger upperRightLength = [upperRight.text length] + [string length] - range.length;
    return (upperRightLength > 1) ? NO : YES;
        }

我需要在多个textField上运行相同的代码(效果很好)。

我尝试了此操作,但它似乎无法正常运行,并且没有相同的效果!

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSUInteger upperRightLength = [upperRight.text length] + [string length] - range.length;
    return (upperRightLength > 1) ? NO : YES;

    NSUInteger upperLeftLength = [upperLeft.text length] + [string length] - range.length;
    return (upperLeftLength > 1) ? NO : YES;
}

我不知道该怎么办!非常感谢你的帮助!!

编辑:我现在尝试了另一个代码:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSUInteger upperRightLength = [upperRight.text length] + [string length] - range.length;
    NSUInteger upperLeftLength = [upperLeft.text length] + [string length] - range.length;
    return (upperLeftLength > 1 &&  upperRightLength > 1 ) ? NO : YES;
}

现在似乎发生了同样的事情。我首先单击哪个文本字段(让我说“ upperLeft”),但我仍然可以键入想要的任意多个字符。但是,当我单击另一个文本字段(upperRight)时,我只能键入1个字符。我尝试过先从(upperRight)开始,然后看到相同的结果...(upperRight)将允许我键入任意数量的文字,而(upperLeft)将仅允许我键入1个字符!太奇怪了!谢谢您的帮助!!

保罗·斯

我认为您缺少委托方法的要点。此方法为您提供了正在编辑的textField,因此您可以使用给textField的引用而不使用ivar

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{
  NSUInteger length = [textField.text length] + [string length] - range.length;
  return !(length > 1);
}

更新

有许多不同的方法可以处理不同字段的不同长度。最简单的是:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{
  NSInteger maxLength = 1;

  if (textField == self.myOtherTextField) {
    maxLength = 2;
  }

  NSUInteger length = [textField.text length] + [string length] - range.length;
  return !(length > maxLength);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

html输入文本字段的“值”属性的最大长度

来自分类Dev

在rails admin中,使文本字段为必填字段,并为其指定最大长度

来自分类Dev

如何在不将其设置为文本字段的情况下获取html文本长度?

来自分类Dev

设置片段的文本字段

来自分类Dev

使用正则表达式设置文本字段的长度

来自分类Dev

具有最大文本字段的For循环

来自分类Dev

如何设置这种文本字段的样式

来自分类Dev

使用uidatepicker设置文本字段值

来自分类Dev

设置文本字段的数值范围

来自分类Dev

设置文本字段onfocus的背景颜色

来自分类Dev

从文本字段设置画布大小

来自分类Dev

通过.value设置文本字段的值

来自分类Dev

使用 javascript 设置文本字段的值

来自分类Dev

Javascript获取多个文本字段的值

来自分类Dev

存储多个文本字段输入

来自分类Dev

多个文本字段的侦听器

来自分类Dev

从多个文本字段附加到数组?

来自分类Dev

Swift/Xcode - IBAction 的多个文本字段

来自分类Dev

如何向文本字段添加长度约束

来自分类Dev

使用基础知识来验证文本字段的长度?

来自分类Dev

Java在禁用的SWT文本字段中设置文本颜色

来自分类Dev

JAVAFX-无法设置文本字段的文本

来自分类Dev

将提示设置为文本字段中的文本开头

来自分类Dev

为多个文本字段添加多个限制

来自分类Dev

隐藏的文本字段将设置为其他“文本字段”值

来自分类Dev

您如何返回列(文本字段)的最大值?

来自分类Dev

设置文本字段值而不会失去焦点

来自分类Dev

用户键入时设置文本字段的格式

来自分类Dev

设置jquery.on中输入文本字段的值