2011-07-27 53 views
1

任何機構可以告訴我如何設置單詞的限制,以輸入在Objective-C中的文本字段? 在我的情況下,我有一個註冊表格和註冊表格,每個用戶必須輸入usernamepassword,emailphone no.,現在我必須限制用戶輸入最多15個字符的名稱。如何在文本字段中設置限制?

任何人都可以告訴我我該怎麼做?

+2

可能重複(http://stackoverflow.com/questions/433337/iphone-sdk-set-max-字符長度文本框) –

+0

這個職位可能有你在找什麼: http://stackoverflow.com/questions/433337/iphone-sdk-set-max-character-length-textfield – AlexFZ

回答

2

您可以按以下方式限制UITextField中的輸入數量。

首先,設置相關UIViewController作爲委託對象,以UITextField

yourTextField.delegate = self; 

然後將下面的代碼添加到您的UIViewController

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    if ([textField.text length]<15) { 
      return YES; 
    } 

    return NO; 
} 

或者你可以在你的UIViewController接口

@interface YourViewController()<UITextFieldDelegate> 
    // YourViewController.m 
@end 

定義UITextFieldDelegate協議,然後實現在你的類以下shouldChangeCharactersInRange任務。

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

這是錯誤的因爲它會考慮文本字段的文本由於用戶typi而改變之前的長度而不是它會是什麼。檢查已被標記爲重複的問題以獲取更多詳細信息。 –

+0

@deepak現在.......... –

2

試試這個:

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

NSString *textFieldText = [textField.text stringByReplacingCharactersInRange:range withString:string]; 

     if ([textFieldText length] > 15) 
     { 
      return NO; 
     } 

return YES; 
} 
[iPhone SDK:設置最大字符長度的TextField]的
相關問題