您的位置:首页 > 其它

自定义键盘切换到系统键盘时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 就可以解决了,不用谢

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息