自定义键盘切换到系统键盘时textField中的内容被清空了
2016-09-12 19:31
337 查看
今天让我debug了一个小时,你说苹果坑不,是这样的,当你自定义键盘是密文输入的时候,也就是说textField.secureTextEntry你设置为了YES,密码就会密文显示,当你是这样设置的话,那么当你用自定义键盘输入了几个字符,你再切换到系统键盘,接着输入,注意我们是想接着输入,可是苹果会给你这个textFiled中的内容清空,让你重新输入,我不知道是坑,还是苹果是怎么考虑的,但是当你把上边的那个属性设置为NO,或者你不设置,(默认为NO),这个时候你随便切都是没问题的。苹果不知道是出于哪门子安全考虑。反正就是这样。
记着:是苹果自己的行为,可能是苹果的bug,也可能是出于别的什么安全考虑,不是我们代码的问题,希望大家看到这篇文章的时候能坚定的说自己封的键盘是OK的
今天发现了解决方法和大家分享下:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
textField.text = [NSString stringWithFormat:@"%@%@",textField.text,string];
return NO;
}
对的,只有在你的自定义键盘切换到系统键盘的时候,在系统键盘中输入文本的时候才会相应这个方法,你在这个方法中直接return NO 就可以解决了,不用谢
。
记着:是苹果自己的行为,可能是苹果的bug,也可能是出于别的什么安全考虑,不是我们代码的问题,希望大家看到这篇文章的时候能坚定的说自己封的键盘是OK的
今天发现了解决方法和大家分享下:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
textField.text = [NSString stringWithFormat:@"%@%@",textField.text,string];
return NO;
}
对的,只有在你的自定义键盘切换到系统键盘的时候,在系统键盘中输入文本的时候才会相应这个方法,你在这个方法中直接return NO 就可以解决了,不用谢
。
相关文章推荐
- ios 自定义cell中有textField,点击textField时,防止键盘挡住textField
- Android 强行夺取EditText系统键盘输入改为自定义安全键盘输入
- android自定义带清空内容的TextView
- Android 自定义EditText 实现获得焦点并且有内容显示右侧图片并点击清空内容
- Android自定义组合控件--EditText和Button组合成带有清空EditText内容功能的复合控件
- iOS系统键盘和自定义键盘的切换
- 自定义键盘中的删除键TextField上光标位置的获取以及设置光标的位子
- iOS textField弹出自定义键盘(日期时间、省市、国家)
- textfield 英文键盘状态下切换中文键盘,控制台有打印,遇到的举手,知道怎么解决的也举手
- iOS自定义键盘和系统键盘切换且文本输入框一直获得焦点
- swift-多个textfield 键盘下一项 切换
- 自定义TextField的删除按钮
- textFieldShouldReturn 键盘无法消失 无法return的问题
- 检测edittext中文字的输入状态,清空内容
- 设置textfield输入框输入内容上下限 (字符数量)
- CCTextFieldTTF ios按return 隐藏键盘
- iOS开发-多个textField情况下关闭键盘
- iOS TextField输入框点击键盘时随着键盘上移
- 【Android】自定义TextView内容过长时不省略最后一个字符
- Android开发之自定义可清空内容的EditText