ios键盘done中文_关于IOS键盘的一些调用心得与坑
以下是关于自己在项目中关于调用IOS键盘以及监听个别按键时的一些心得:
一、键盘打开方式
UITextField *field = [[UITextField alloc] initWithFrame:CGRectFrame(x,y,width,height)]; [field becomeFirstResponder];
键盘的调用可以通过调用becomeFirstResponder使得field成为第一响应者,从而调出键盘;
二、在键盘打开以及关闭过程中,可以添加通知事件来处理某些工作
//键盘显示通知,会调用selector参数中对应的keyboardWillShow(自定义的)函数
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
//键盘隐藏通知,会调用selector中对应的keyboardWillHide(自定义的)函数
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
一般可以在键盘显隐时对对应的view进行布局修改,防止键盘遮挡等问题
三、避免使用第三方输入法时,键盘显示时会出现调用三次二中使用的keyboardWillShow函数
可以设置一个全局整型参数,第一次调用时keyboardWillShow中可计为1,后两次调用时则根据这个参数来判断是否执行相关代码,而在键盘隐藏时或其他需求的地方重置参数为0即可。
四、UITextField内容监听方法
A.UITextField *textField = [[UITextField alloc] initWithFrame:rect];
[textField addTarget:self action:@selector(clickReturnKeyDone) forControlEvents:UIControlEventEditingDidEndOnExit];//编辑返回、go、return等操作
[textField addTarget:self action:@selector(textChangeBegin) forControlEvents:UIControlEventEditingDidBegin];//编辑开始事件
[textField addTarget:self action:@selector(textChange) forControlEvents:UIControlEventEditingChanged];//编辑改变事件
根据指定的UIControlEvent事件去调用指定的函数,执行需要的操作。
B.也可通过实现UITextFieldDelegate中的函数来执行某些操作
首先在.h文件中添加对应的UITextFieldDelegate,其次给对应的UITextField文本框添加协议
textField.delegate = self; 具体的事件可自行查看UITextFieldDelegate协议中的函数实现
五、监听键盘上的删除以及回车按键
网上有建议自定义UITextField的,然后重写其中的deleteBack函数来监听对应的删除按键,下面我是通过UITextFieldDelegate协议中的一个函数来监听的:
//这个函数时文本框改变时调用的方法,其中的string参数是用户本次输入到文本框的字符串
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if ([textField.text isEqualToString:@""]) { //这个时候得到的还是文本框未改变时的字符串
if ([string length] < 1 ) {
//如果用户点击的删除按键,那么string是空的,没有长度
}
if ([string length]>0) {
int result = [string characterAtIndex:0];
if (result == 10) {
//用户点击了回车
}
i f (result == 32) {
//用户点击了空格
}
}
}
return YES;
}
以上是本人在使用IOS键盘时的一些心得,后续有新的内容会持续更新,如有疑问或者错误的地方欢迎指正,谢谢
ios键盘done中文_关于IOS键盘的一些调用心得与坑相关推荐
- ios web应用程序_使用ios 13改善应用程序的可访问性
ios web应用程序 I know, iOS 13 has been with us for quite some time now, WWDC 2020 is just around the co ...
- ios git解决冲突_适用于iOS和Linux的远程同步解决方案:Git和工作副本
ios git解决冲突 如何在iOS上使用Git设置跨平台的云同步解决方案以在任何地方工作. (How to set up a cross-platform cloud sync solution f ...
- ios 扫码枪外设 键盘模式_苹果iOS 13新增滑行键入功能 开启新键盘模式
滑行输入又称扫屏输入,是近年触摸屏幕/触摸键盘上流行的输入技术,它的特点是:你只需要在要录入单词的几个字母之间滑行,系统词库就能把你需要的单词给找出来,无需考虑顺序.排列.冗余甚至无需考虑多输入进去的 ...
- ios查看线程数量_关于iOS多线程,你看我就够了(已更新)
作者:@翁呀伟呀 授权本站转载. 在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项.当然也会给出几种多线程的案例,在实际使用中感受它们的区别.还有一点需要说明的是 ...
- ios沙箱模式开启_【iOS】苹果IAP(内购)中沙盒账号使用注意事项
目标 沙盒账号的正确使用方式 沙盒账号使用的注意事项 1.沙盒账号是什么 iOS应用里面用到了苹果应用内付费(IAP)功能,在项目上线前一定要进行功能测试.测试肯定是需要的,何况这个跟money有关. ...
- java 键盘输入 中文_201671010127 2016-2017-11 从键盘读入中文字符串遇到的问题
上周测试户籍管理系统时,我偶然发现了一个问题,在IDE下运行该程序时,如果输入为中文字符串时会遇到一些问题.下面我就以一个简单的程序来演示该问题: 首先我先写一个从键盘读入一个中文字符串,然后输出该字 ...
- win10 联想键盘快捷键关闭_这些Win10键盘快捷键你必须掌握,系统高手必备技能...
随着微软即将对win7停止支持以及官方对win10的大力推广,win10的用户越来越多,大家对它的大部分功能都慢慢熟悉了,如果你还只是会用ctrl+c和ctrl+v,那就说明你out了.我们会发现真正 ...
- ios 监测网页按钮_苹果IOS备忘录便签软件敬业签恢复删除内容应该怎么操作?...
敬业签是一款功能比较全面的苹果手机桌面备忘录便签软件,主要功能包括:云储存.多端云同步.提醒待办事项.时间管理.标记已完成.月视图和时间轴等.在使用苹果IOS备忘录便签软件敬业签的时候,如果不小心误删 ...
- h5 ios 滚动到底部_分享iOS平台使用H5原生滚动的下拉刷新功能v1.0.0 [不推荐]
上一篇给大家分享了<使用H5原生滚动的上拉加载功能>,但是没有下拉刷新的功能,今天赶快补上. 我们在上一篇中提到,因为iOS下mui中的下拉刷新插件,使用的是自绘的模拟滚动条,不是原生的, ...
最新文章
- Flutter开发之布局-3-center(17)
- 【企业管理】2020年3-4 月 每日花语
- 带手势划动功能的日历源码
- r 保留之前曲线_生存曲线居然能够批量绘制了
- Centos中不从skel目录里向其中复制任何文件错误的解决方法
- win7超极本盘符不见找回文件的方法
- css-模态对话框的制作
- ORACLE 语句关联统计
- DOS批处理删除重复行
- 二分法查找c语言程序_用C++写二分查找了!【手绘漫画】图解LeetCode之搜索插入位置(LeetCode 35)...
- Android 表单之 TextView(文本框)详解
- [我的成长:1004期]春节快乐
- python 宏定义_Flask干货:Jinja2模板中的宏定义和使用
- 俄罗斯方块 java_java代码实现俄罗斯方块
- JAVA实现飞机大战详解
- 汇编语言典型例子详解_25个经典汇编程序案例
- ubuntu防火墙安装和设置-ufw
- 关于井冈山大学校园宽带WIFI多人共享解决的一些思路
- VPS、云服务器(云主机)和虚拟主机有何异同?
- 【腾讯TMQ】测试建模兵器谱
热门文章
- hashmap 扩容是元素还是数组_HashMap的扩容机制---resize()
- 癌症中克隆种群结构统计推断分析软件PyClone安装小记
- 北京大学现代农业研究院张华伟实验室招聘启示
- mSystems:干旱对土壤微生物组的影响
- 2019年上半年国内学者在植物领域共发表6篇Science, 1篇Nature,1篇Cell!
- MMinte:预测微生物群体内代谢物互作
- Nature综述:微生物构成的氮循环网络
- numpy使用[]语法索引二维numpy数组中倒数N列数据列的数值内容(accessing the last N columns in numpy array)
- R语言ggplot2可视化:可视化分组的小提琴图(violin plot)并在分组小提琴内部嵌入箱图(box plot)
- 运维管理工具+chef+puppet+ansible+SaltStack