欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

键盘相关处理

发布时间:2025/7/14 编程问答 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 键盘相关处理 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

实际开发中在退出当前界面前,要将弹起的键盘收起

- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated];// 视图退出编辑状态(收起键盘)[self.view endEditing:YES];} 复制代码

如果当前控制器是TableViewController时,就不能这么写了

- (void)viewWillDisappear:(BOOL)animated {[super viewWillDisappear:animated];// 关闭第一响应者(收起键盘)[self.textField resignFirstResponder]; } 复制代码

在实际开发中有时候需要对 文本输入框UITextfiled 进行一些限制. 比如说在输入金额的时候我们希望只能输入最多两位小数.应该怎么办呢?UITextfiled 有个代理方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; // return NO to not change text 复制代码

官方的注释是** return NO **的时候是不能改变文字的.那么我们就在这个方法里做手脚.为了少做一些判断.我们可以先限制调出的键盘类型为UIKeyboardTypeDecimalPad.

UIKeyboardTypeDecimalPad

// 输入金额 限制两个小数

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {if ([textField.text containsString:@"."]) {if ([string isEqualToString:@"."]) return NO;NSRange rangeOfPoint = [textField.text rangeOfString:@"."];if (range.location > rangeOfPoint.location + 2) return NO;}return YES;} 复制代码

附录: 键盘样式:

UIKeyboardTypeDefault

UIKeyboardTypeASCIICapable

UIKeyboardTypeNumbersAndPunctuation

UIKeyboardTypeURL

UIKeyboardTypeNumberPad

UIKeyboardTypePhonePad电话号码键盘

UIKeyboardTypeNamePhonePad

UIKeyboardTypeEmailAddress

UIKeyboardTypeDecimalPad金额键盘

UIKeyboardTypeTwitter

UIKeyboardTypeWebSearch

UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable

总结

以上是生活随笔为你收集整理的键盘相关处理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。