2009-05-22 114 views
0

我将maxlength设置为我的textField,当我在textField中输入最大字符时,退格不起作用。由于我无法更改textFields内容。 当我在iPhone SDK 3.0上测试我的应用程序时发生这种情况,但它在iPhone SDK 2.2中正常工作。iPhone sdk 3.0问题

这里是我的代码,

- (BOOL)textField:(UITextField *)txtField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if (txtField.text.length >= 15 && range.length == 0) 
    { 
     return NO; 
    } 
    else 
    { 
     return YES; 
    } 
} 

为什么它在iPhone SDK 3.0会怎么样?

回答

0

关闭我的头顶,range.length == 0会返回true为退格字符,所以当用户点击全文字段的退格时,您明确返回NO。我建议改变第一条件为:

if (txtField.text.length + range.length > 15) 
    return (NO); 

...这样你正在测试的修改字符串是否会过大,以适应(而不是仅仅检查现有值的个体大小和另外),并且你不会与OS 3.0中的新的粘贴代码相冲突,该代码一次可以向文本字段添加多个单个字符。