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];
}
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];
}
相关文章推荐
- 学习 shell脚本之前的基础知识
- js去掉字符串第一位与最后一位
- 领域驱动(DD)目录
- IOS之Objective-C学习 工厂模式
- selenium 学习笔记 ---新手学习记录(10) 问题总结(java)--poi--excel 操作
- this 指针
- 自定义textview旋转文字
- 文件传输导致PHP-smarty白屏故障
- 初见swift--基本类型
- 一道不管多少次都过不去的坷Grandma Laura and Apples
- Ehcache 整合Spring 使用页面、对象缓存
- 二代旅游网站程序V1使用手册(三):旅游目的地管理
- mysql中文乱码问题(转自网易--网站笔记)
- Android Activity生命周期相关问题
- URL 传+号到后台变空格问题解决方案
- ORACLE之搭建DG(ADG方式)
- 移动端页面使用rem来做适配
- 【Android】【绘图】Scroller
- iOS在Xcode 7.2 里制作 Framework 的简单过程
- Android系统源码学习