发送红包TextField设置

#pragma mark - **************** textField代理方法

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

{

// ------ string指的是当前输入的文本 获取到string 判断输入是否为数字

NSUInteger lengthOfString = string.length;

for (NSInteger loopIndex = 0; loopIndex < lengthOfString; loopIndex++) { // for循环遍历输入的string

unichar character = [string characterAtIndex:loopIndex];

if ((character < 48 || character > 57) && character != 46) return NO;  // 根据unicode编码限制输入内容为数字

}

// ------ 计算输入之后textField中文本的长度

NSUInteger wordNumber = textField.text.length - range.length + string.length;

if (wordNumber > 5) {

return NO;

}

// ------判断当前文本是否存在小数点 并通过布尔值_isHadPoint记录

if ([textField.text rangeOfString:@"."].location == NSNotFound) {

_isHadPoint = NO;

}

// ------当前输入文本时

if (string.length > 0) {

// ------判断输入的是否是小数点 如果是小数点 再判断是否已经存在小数点 1.没存在 改变_isHadPoint状态 2.存在小数点 则能再次输入小数点 返回NO

unichar single = [string characterAtIndex:0];

if (single == ‘.‘) {

if (!_isHadPoint) {

_isHadPoint = YES;

}else

{

return NO;  // 已经输入小数点了 不能再输入了

}

} else { // ------当输入的不是小数点时 再判断当前是否存在小数点 若存在 则限制小数点后只能输入两位

if (_isHadPoint) {

NSRange numberRange = [textField.text rangeOfString:@"."];

int numberBehindPoint = (int)range.location - (int)numberRange.location;

if (numberBehindPoint > 2) {

return NO;            // ------不能超过两位

}

}

}

}

// ------当之前的所有判断都通过后 开始将textField内输入过的内容赋值给显示Label 并且限制红包金额为200

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

NSLog(@"%f",[toBeString doubleValue]);

if ([toBeString floatValue] > 200.0) {

_moneyNumImportTF.textColor = kRedBoardColor;

_moneyNumImportRightTF.textColor = kRedBoardColor;

_moneyNumImportLeftTF.textColor = kRedBoardColor;

[_sendRedPacketBtn setEnabled:NO];

[UIView animateWithDuration:0.5 animations:^{

[self bringSubviewToFront:_topWarningLabel];

_topWarningLabel.left = 0;

}];

} else {

// ------当没有输入时 发送Btn不能点击

if (toBeString.length == 0) {

[_sendRedPacketBtn setEnabled:NO];

} else {

[_sendRedPacketBtn setEnabled:YES];

}

_moneyNumImportTF.textColor = kBlackTextColor;

_moneyNumImportRightTF.textColor = kBlackTextColor;

_moneyNumImportLeftTF.textColor = kBlackTextColor;

[UIView animateWithDuration:0.5 animations:^{

_topWarningLabel.right = 0;

}];

}

// ------给展示Label赋值

_moneyNumShowLabel.text = [NSString stringWithFormat:@"¥%.2f",[toBeString floatValue]];

return YES;

}

总结:为textField加限制时 最好只限制return NO

时间: 2024-09-28 19:56:04

发送红包TextField设置的相关文章

php微信公众帐号发送红包

开发框架为we7 所需参数:appid,appSecret,MchId,API密钥 <?php /** * 微信红包的类 * */ CLASS WXHongBao { private $mch_id = "111111";//商户ID写死 private $wxappid = "22222222";//微信公众号,写死 private $client_ip = "119.29.80.114"; //调用红包接口的主机的IP,服务端IP,写死

使用nodejs调用微信发送红包

前置条件:申请微信发送红包的账户及其权限 依赖 blueimg-md5和 xmlreader 库 /common/weixin.js 源码 /** * Created by chent696 on 2015/2/7./common/weixin.js */ /* 拼接微信红包xml串 */ /* serverConfig.json 文件内容 "clientIp":"222.73.202.251", "showName":"i8小时&qu

接口调试工具ApiPost的发送超时时间设置方法

有部分使用ApiPost的同学反应:发送接口调试时,响应超时时间设置的太短导致接口访问失败,怎么设置呢? 就连百度也有很多人在搜: 今天就来说一说. ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工具.它支持模拟POST.GET.PUT等常见请求,是后台接口开发者或前端.接口测试人员不可多得的工具 . 官网:https://www.apipost.cn/ ApiPost的发送超时时间设置方法 对于老版本的ApiPost,这个超时时间的确是无法设置的.新

textfield设置详解

//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITextBord

TextField设置大全

//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITextBord

IOS TextField设置大全

//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITextBord

Ios textfield 设置大全

//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITextBord

SMS发送短信设置HttpWebRequest

抓包工具 : fiddlersetup public static string SendSMS(string url, string context) { string postData = context; System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); Byte[] contextBytes = encoding.GetBytes(postData); System.IO.Stream receiveS

textField设置输入文字距左边的距离

1.设置tetxField的内边距 [self.yourTextField setValue:[NSNumber numberWithInt:5] forKey:@"paddingTop"]; [self.yourTextField setValue:[NSNumber numberWithInt:5] forKey:@"paddingLeft"]; [self.yourTextField setValue:[NSNumber numberWithInt:5] fo