如何为UIAlertView文本字段设置最大字符串长度

时间:2012-11-23 14:43:05

标签: objective-c ios xcode uialertview textfield

如何设置UIAlertView内创建的文本字段的最大字符串长度?我正在使用Xcode 4.5并在10.8(OS X)上构建应用程序目前我有UIAlertView在用户单击按钮时启动。用户将扫描他们的RFID徽章,我希望UIAlertView的输入文本域限制为10(十)个字符,这样用户就无法捏造关联过程。

2 个答案:

答案 0 :(得分:3)

您可以在textField的委托方法中检查文本的长度:

textField:shouldChangeCharactersInRange:replacementString:

如果您不想改变,请返回NO。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
   if (textField.text.length - range.length + string.length > 10) {
      return NO;
   }
   return YES;
}

答案 1 :(得分:2)

看起来上面的答案几乎正确。

键入单个字符时,range.length(对于此方法)似乎始终为零,而位置递增。

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

      NSLog(@"Range: %@", NSStringFromRange(range));
      return ( range.location < 10 );

 }

编辑:如果你做的不是单字符输入,即粘贴一条线等,长度可能会更长。