背景:
一个viewcontroller上添加一个滚动视图,滚动视图分别添加了两个视图,每个视图上有两个uitextfield(此时一个uitextfield是直接当做子视图在view上的,另一个是封装后的uitextfield:意味成两个uitextfield不在这个view的同一层级上),第一个视图两个输入框分别设置textcontenttype为UITextContentTypeUsername与UITextContentTypePassword,password的secureTextEntry属性设置为YES(密文显示), 这时当点击密码输入框的时候,会出现strongpassword的浮层盖在密码输入框上,还会影响系统的存储密码的弹框。
(文章中viewcontroller简化为vc),(view简化为v)
排查过程总结: 一个vc上有两个v,每个v上分别有2个uitextfield(账号密码)的时候,autofill的功能不会同时填充账号跟密码框,可能是识别到有其他的uitextfield的存在,于是只填充了当前textfield。需要将两个v分别放在一个viewController上才行。也就是说一个vc上 只能有2个uitextfield时 才会一起填充,不然就系统会只识别填充一个(不过需要设置secureTextEntry为NO)。而且在有4个uitextfield在一个vc上子view的时候,会出现当设置secureTextEntry不是YES的时候,出现textcontenttype属性的混乱,比如你设置的密码框textcontenttype属性是password,出现了newpassword的异常,盖上strongpassword的情况。
一开始以为是,两个uitextfield必须在同一个view上,