UITextfield限制

輸入鍵盤設置

placeHolderTF.keyboardType = UIKeyboardTypeASCIICapable;//設置鍵盤類型,不能輸入中文

placeHolderTF.secureTextEntry = YES;//加密顯示

placeHolderTF.returnKeyType = UIReturnKeyDone;//鍵盤return按鈕設置

監聽輸入框編輯變化

[self.withdrawCashNumberTextFieild addTarget:self action:@selector(withdrawCashNumberTextFieildValueChanged:) forControlEvents:UIControlEventEditingChanged];

- (void)withdrawCashNumberTextFieildValueChanged:(UITextField *)textField{

//只能輸入兩位小數

NSString *text = textField.text;

NSRange pointRange = [text rangeOfString:@"."];

if (pointRange.location != NSNotFound) {

NSString *subtext = [text substringFromIndex:pointRange.location + pointRange.length - 1];

if (subtext.length > 2) {

textField.text = [text substringToIndex:pointRange.location + 3];

}

}

}

//限制小數輸入

#pragma mark - UITextField處理

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

{

if(textField ==self.withdrawCashNumberTextFieild) {

//判斷是否為刪除字符,如果為刪除則讓執行

if(string.length==0) {

returnYES;

}

//獲取輸入框內字符串

NSString*text = textField.text;

//首位不能輸.和0

if(text.length==0&& ([stringisEqualToString:@"."] || [stringisEqualToString:@"0"])) {

returnNO;

}

//判斷是否有小數點

if([textrangeOfString:@"."].length) {

//不允許輸雙..

if([stringisEqualToString:@"."]){

returnNO;

}

//獲取小數點后面字符串長度

if([textsubstringFromIndex:[textrangeOfString:@"."].location].length>2) {

returnNO;

}else{

returnYES;

}

}else{

returnYES;

}

}

returnYES;

}

限制文本長度

#pragma mark - UITextFieldDelegate

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

//用戶名25字內

if (textField == self.userNameTF) {

NSInteger strLength = textField.text.length - range.length + string.length;

if (strLength < kNameLengthLimit+1) {

return YES;

}else{

textField.text = [textField.text substringToIndex:kNameLengthLimit];

return NO;

}

}else if (textField == self.telNumberTF) {

//手機號碼文本框限制只能輸入11個數字

NSInteger strLength = textField.text.length - range.length + string.length;

return (strLength <= 11);

}

鍵盤return按鈕點擊響應textField代理事件

-(BOOL)textFieldShouldReturn:(UITextField *)textField

{

//此判斷是為圍堵姓名/邀請碼等有中文的輸入字數超限

if (textField.keyboardType == UIKeyboardTypeDefault) {

if (textField == self.userNameTF && textField.text.length > kNameLengthLimit) {

textField.text = [textField.text substringToIndex:kNameLengthLimit];

}

}

[textField resignFirstResponder];

return? YES;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容