2009-05-22 155 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中的新的粘貼代碼相沖突,該代碼一次可以向文本字段添加多個單個字符。