2011-10-06 54 views
2

我无法为文本字段的内容设置最大长度。我采用的过程是在我的头文件中实现UITextFieldDelegate。然后我定义(然后调用)这种方法:故障设置文本字段的最大长度

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

这是一种方法,我在网站上的建议。我也试过这样:

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

“邮政编码”是我连接到文本字段中的出口。每次我更改了代码后,我都确保重新连接插座。我有一种感觉,那就是我错过了一件非常简单的事情。如果这是一个有点复杂的道歉,我有很多要学习!谢谢。

回答

0

试试这个:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    return (zipCode.text.length + string.length <= 5); 
} 

然后,在viewDidLoad方法:

- (void)viewDidLoad { 
    zipCode.delegate = self; 
    //..... 
    [super viewDidLoad]; 
} 
+0

嗯,仍然没有工作。我应该以某种方式将它连接到我不知道的Interface Builder中吗?或者,界面生成器可能会显示这个问题?这是我尝试过的第三种方法,当我分析它们时它们都有意义,但它们不起作用... – MillerMedia

+0

在视图控制器的viewDidLoad方法中放入'zipCode.delegate = self;'。它可能没有与IB连接,但可以用上面的行手动完成。 – chown

+0

太棒了。终于工作了,谢谢! – MillerMedia

相关问题