2011-12-13 71 views
0

我有一個懷疑,我怎麼能阻止用戶輸入8位數字後輸入文本字段中的任何東西?這意味着在文本字段長度達到8位數字後鍵盤將被禁用,但如果用戶刪除了任何數字,鍵盤將再次啓用?如何阻止用戶在特定範圍內的文本字段中輸入文本。

這是代碼。請幫助我,提前謝謝。目前,它只停留到8位數字,但它不允許我再刪除。

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

    NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:DIGIT_CHARSET]; 
    NSString *text = [string stringByTrimmingCharactersInSet:[charSet invertedSet]]; 

    if ([textField.text length] == 8) { 
     return NO; 
    }else 
    { 
     return [text isEqualToString:string]; 
    } 
} 

回答

1

在您的代碼中嘗試此操作。它不會允許在8之後寫任何數字,但是如果你刪除,那麼它將允許你寫數字,直到它是8.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    if (range.location > 7) 
     return NO; 
    else 
     return YES; 
} 
+0

它是否解決了你的問題。 – mAc

0

您需要檢查textField中已更改文本的長度。

NSString* changedText = [textField.text stringByReplacingCharactersInRange: range withString: string]; 
if ([changedText length] >= 8) 
    return NO; 
相關問題