自定义键盘切换到系统键盘时textField中的内容被清空了

来源:互联网 发布:数据库源码 编辑:程序博客网 时间:2024/06/07 03:41

今天让我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 就可以解决了,不用谢 奋斗

1 0
原创粉丝点击