您的位置:首页 > 其它

textField 限制2位小数,编辑时不让键盘挡住

2016-03-23 17:55 453 查看
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
{
// 限制2位小数
NSMutableString * str = [NSMutableString
stringWithString:textField.text];
[str insertString:string
atIndex:range.location];

NSInteger flag=0;
const
NSInteger limited = 2;
for (int i = str.length-1; i>=0; i--) {

if ([str characterAtIndex:i] == '.') {

if (flag > limited) {
return
NO;
}
break;
}
flag++;
}
return
YES;
}

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
if (textField.tag == 1 || textField.tag == 2) {
[self.resetBtn
setTitle:@"保存"
forState:UIControlStateNormal];
}
CGRect frame = textField.frame;
int offset =
CGRectGetMaxY(frame) - (self.scrollView.frame.size.height
- 252);//键盘高度216//252 - 216
系统键盘的两个不同高度
self.offset = offset;
NSTimeInterval animationDuration = 0.30f;
[UIView
beginAnimations:@"ResizeForKeyboard"
context:nil];
[UIView
setAnimationDuration:animationDuration];
//将视图的Y坐标向上移动offset个单位,以使下面腾出地方用于软键盘的显示
CGRect viewF =
self.scrollView.frame;
if(offset < 0)
viewF.origin.y = offset;
self.scrollView.frame = viewF;
[UIView
commitAnimations];
}

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
CGRect viewF =
self.view.frame;
self.scrollView.frame =
CGRectMake(0, 0, viewF.size.width, viewF.size.height-49);
[UIView
commitAnimations];
[textField resignFirstResponder];
return
YES;
}

//输入框编辑完成以后,将视图恢复到原始状态
-(void)textFieldDidEndEditing:(UITextField *)textField
{
CGRect viewF =
self.view.frame;
self.scrollView.frame =
CGRectMake(0, 0, viewF.size.width, viewF.size.height-49);
[UIView
commitAnimations];
}

// 隐藏键盘
- (void) hideKeyboard{
CGRect viewF =
self.view.frame;
self.scrollView.frame =
CGRectMake(0, 0, viewF.size.width, viewF.size.height-49);
[UIView
commitAnimations];
[self.nameTextF
resignFirstResponder];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: