金额三位增加一个逗号
- (NSString*)dealMoneyString
{
NSRange range = [selfrangeOfString:@"."];
NSMutableString *string ;
if(range.location!=NSNotFound) {
string = [NSMutableStringstringWithString:[[NSString stringWithFormat:@"%@000",self] substringToIndex:range.location+3]];//保存两位小数,不能直接用%.2f,因为默认会四舍五入.
}else
{
string = [NSMutableString stringWithString:[NSString stringWithFormat:@"%.2f",[selfdoubleValue]]];
}
NSRange range2 =[string rangeOfString:@"."];
if(range2.location>3) {
for(NSInteger i = range2.location-3; i >0; i -=3) {
[string insertString:@","atIndex:i];
}
}
returnstring;
}
这是我写的NSString的一个分类里面的实例方法.得到金额字符串直接调用即可.
金额输入框增加输入限制
- (instancetype)init
{
if(self= [superinit]) {
[self addRules];
}
return self;
}
- (instancetype)initWithFrame:(CGRect)frame
{
self= [super initWithFrame:frame];
if(self) {
[self addRules];
}
return self;
}
- (void)addRules
{
[selfaddTarget:selfaction:@selector(checkInput)forControlEvents:UIControlEventEditingChanged];
self.keyboardType=UIKeyboardTypeDecimalPad;
}
- (void)checkInput
{
if([self.text hasPrefix:@"00"]) { //不能已00开头
self.text= [self.text substringToIndex:1];
}
if([self.text hasPrefix:@"."]) { //不能以小数点开头
self.text= [self.text substringToIndex:0];
}
NSRange range = [self.text rangeOfString:@"."];
if(range.location!=NSNotFound) {
//不能输入多个小数点
if([[self.text substringFromIndex:range.location+1]rangeOfString:@"."].location!=NSNotFound) {
self.text= [self.text substringToIndex:self.text.length-1];
}
//最多输入两位小数
if(self.text.length>= range.location+ range.length+3) {
self.text= [self.text substringToIndex:range.location+3];
}
}elseif(self.text.length>=9) { //金额小数点前不能超过九位
self.text= [self.text substringToIndex:9];
}
}
这是一个父类TextField,用到金额处理的输入框继承即可.
做iOS开发快两年了,一直是个伸手党.自身提升也不是很大,所以最近闲暇打算整理下自己平时写到的一些工具类.这些可能网络上已经有过了,写的不好请大神轻喷,如果各位在使用过程遇到bug,欢迎留言.
初次写简书文章,真是有点羞涩呢! O(∩_∩)O
网友评论