关于UIDatePicker的奇葩问题

2021-09-07  本文已影响0人  紫嫣沁

最近写了一个项目,一个tableView上有很多行,其中有昵称,性别,生日,感情状况几行需要编辑,每一行都是UITextField。

在性别那一行用的是一个自定义的view,直接加在屏幕上的;

在生日那一行编辑时,用的是UIDataPickerView textField.inputView = self.datePicker;

这时,当先点击生日吊起pickerView后,在点击性别,此时pickerView下不去,用了N多种方法,比如当点击性别时让self.view结束编辑,获取生日的那一行textField取消第一响应。。。都不行,没卵用,还一度以为是window的问题,后来我进行了认真比对,然后为了排除window的问题,我写了个小demo,就简单的在一个控制器里写了两个textField,一个点击时吊起pickerView,一个点击时显示自定义view,没想到问题居然照样重现了!这样的话,就排除了是window的问题,那么,就还是键盘的问题,我又看了下,当点击生日吊起pickerView后再点击昵称吊起自带的键盘,pickerView就会下去,但是再吊起性别的那个自定义view,pickerView就下不去。。。。。然后想了n久,加了一句代码,当点击性别的时候:

textField.inputView =[[UIView alloc]init];

把textField的inputView更改为一个空的view,然后再把自定义的view加载出来,没想到,居然好了!!!

就是当键盘吊起过pickerView后然后再点击别的行,如果不是吊起键盘而只是要在父View上加一个自定义的view,那一定要再把键盘的inputView重置一下,才能把pickerView失去响应,隐藏下去。。

好吧,就酱紫,另外,此时,点击性别时上一个pickerView会下去,同时自定义view会出现,不过有光标显示在textField出来,不想要光标显示出来的就自己找方法隐藏光标,另外在选择完性别后,view隐藏下去的时候要记得把该textField结束编辑,否则像我的上边的截图中,性别选择完view下去了还会有光标在,而且再点击就view就起不来了,因为textField仍处于编辑状态就不会进textFieldDidBeginEditing:代理方法

上一篇下一篇

猜你喜欢

热点阅读