如何讓textField輸入框 限制輸入字數的同時,還只讓輸入數字和字母 1. 實現
UITextFieldDelegate 協議。
2. 在標頭檔中,定義如下變數:
//最多的賬戶字元個數
#define ACCOUNT_MAX_CHARS 16
3. 在實現檔案中:
將 textFiled對象的delegate設定為self:
m_accountField = [[UITextField alloc] initWithFrame:CGRectMake(89,26, 243, 33)];
m_accountField.borderStyle = UITextBorderStyleNone;
m_accountField.font = fieldFont;
m_accountField.delegate = self;
//UITextFieldDelegate- (BOOL)textFieldShouldReturn:(UITextField *)textField;{ //使用者結束輸入 [textField resignFirstResponder]; return YES;}- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string // return NO to not change text{ //判斷是否超過 ACCOUNT_MAX_CHARS 個字元,注意要判斷當string.leng>0 //的情況才行,如果是刪除的時候,string.length==0 int length = textField.text.length; if (length >= ACCOUNT_MAX_CHARS && string.length >0) { return NO; } NSCharacterSet *cs; cs = [[NSCharacterSet characterSetWithCharactersInString:kAlphaNum] invertedSet]; NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""]; BOOL basic = [string isEqualToString:filtered]; return basic;}