輸入鍵盤設置
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;
}