2010-07-28 37 views
1

我的筆尖文件中有多個文本框。 我想決定在我的一個文本字段中的輸入範圍爲6-16位數字,我不想更改任何其他文本字段輸入。爲此,我製作了一個名爲tflimit的方法,如下所示。文本字段在界面生成器中的輸入範圍

-(IBAction)tflimit:(id)sender 
{  
    if([textfields1.text length]>=15) 
    { 
     [textfields1 resignFirstResponder]; 
    } 
} 

使用此方法,我只能輸入16位數的輸入。 如何在不更改其他代碼的情況下決定文本字段中輸入的範圍(6-16)。

回答

2

您可以在文本字段委託textField:shouldChangeCharactersInRange:replacementString:方法過濾用戶輸入:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 
    if (textField == textfields1){// Apply logic only to required field 
     NSString* newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; 
     return [newString length] < 16 && [newString length] > 5; 
    } 
    return YES; 
} 

注意,正常工作這種方法需要文本框要與文本預填充長度至少爲5個字符。

+0

thnks你的答覆..但我必須從鍵盤輸入沒有填充任何事先input.and實現這個方法,我必須在.h文件中聲明和實現此方法我的所有字段不是如何執行我的任務。請幫助我。 – mukeshpawar 2010-07-28 14:17:14

+0

爲了避免預填充,您必須添加額外的邏輯來檢查最小文本長度 - 例如只有在字符被刪除的情況下(即replacementString爲空時)才檢查該情況。要做到這一點,你的控制器必須符合UITextFieldDelegate協議,但抱歉不明白你有什麼問題。 – Vladimir 2010-07-28 14:30:33