2011-07-27 31 views
1

任何机构可以告诉我如何设置单词的限制,以输入在Objective-C中的文本字段? 在我的情况下,我有一个注册表格和注册表格,每个用户必须输入usernamepassword,emailphone no.,现在我必须限制用户输入最多15个字符的名称。如何在文本字段中设置限制?

任何人都可以告诉我我该怎么做?

+2

可能重复(http://stackoverflow.com/questions/433337/iphone-sdk-set-max-字符长度文本框) –

+0

这个职位可能有你在找什么: http://stackoverflow.com/questions/433337/iphone-sdk-set-max-character-length-textfield – AlexFZ

回答

2

您可以按以下方式限制UITextField中的输入数量。

首先,设置相关UIViewController作为委托对象,以UITextField

yourTextField.delegate = self; 

然后将下面的代码添加到您的UIViewController

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    if ([textField.text length]<15) { 
      return YES; 
    } 

    return NO; 
} 

或者你可以在你的UIViewController接口

@interface YourViewController()<UITextFieldDelegate> 
    // YourViewController.m 
@end 

定义UITextFieldDelegate协议,然后实现在你的类以下shouldChangeCharactersInRange任务。

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

这是错误的因为它会考虑文本字段的文本由于用户typi而改变之前的长度而不是它会是什么。检查已被标记为重复的问题以获取更多详细信息。 –

+0

@deepak现在.......... –

2

试试这个:

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

NSString *textFieldText = [textField.text stringByReplacingCharactersInRange:range withString:string]; 

     if ([textFieldText length] > 15) 
     { 
      return NO; 
     } 

return YES; 
} 
[iPhone SDK:设置最大字符长度的TextField]的
相关问题