美文网首页
UITextField为密码类型,ios13之后的系统,弹出存储

UITextField为密码类型,ios13之后的系统,弹出存储

作者: 小白猿 | 来源:发表于2021-10-27 09:18 被阅读0次

    当UITextField为密码类型,iOS13及以后系统,当输入完密码以后,系统会弹出存储密码的系统弹窗,此时不乱是否存储密码,在当次使用(意思是没有在后台杀死APP之前)过程中,键盘弹出以后,对于键盘frame监听是异常的,以下为iPhoneX的数据,且选取键盘监通知为key值为keyboardViewFrameDidChangeEnd,即[notify.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue],其中 notiftyNSNotification *类型

    UIKeyboardWillChangeFrameNotification
    弹出:
    没问题
    keyboardViewFrameDidChangeEnd,---{{0, 550}, {414, 346}}
    有问题
    keyboardViewFrameDidChangeEnd,---{{-207, -346}, {414, 346}}
    keyboardViewFrameDidChangeEnd,---{{0, -303}, {648, 303}}
    
    
    UIKeyboardWillChangeFrameNotification
    收起没问题
    keyboardViewFrameDidChangeEnd,---{{0, 896}, {414, 346}}
    keyboardViewFrameDidChangeEnd,---{{0, 896}, {414, 243}}
    有问题
    keyboardViewFrameDidChangeEnd,---{{0, 0}, {648, 303}}
    keyboardViewFrameDidChangeEnd,---{{324, 0}, {0, 243}}
    
    UIKeyboardWillShowNotification
    没有问题
    keyboardViewFrameDidChangeEnd--show{{0, 550}, {414, 346}}
    有问题
    keyboardViewFrameDidChangeEnd--show{{-207, -346}, {414, 346}}
    keyboardViewFrameDidChangeEnd--show{{0, -303}, {648, 303}}
    
    UIKeyboardWillHideNotification
    没有问题
    keyboardViewFrameDidChangeEnd--hidden{{0, 896}, {414, 346}}
    有问题
    keyboardViewFrameDidChangeEnd--hidden{{0, 0}, {648, 303}}
    keyboardViewFrameDidChangeEnd--hidden{{324, 0}, {0, 243}}
    

    大致影响的是Y值,且通知的回调次数,有问题的回调数据都有异常,大致表象为Y值为负值,我们知道,键盘最小的y值为,屏幕高度 减去 键盘高度,最大为屏幕高度,所以也可以简单的依据此进行数据的修正

    此问题是在ios13系统产生,因为存储密码的功能是在ios13产生,且目前在ios15的15.0.2还没有修复

    相关文章

      网友评论

          本文标题:UITextField为密码类型,ios13之后的系统,弹出存储

          本文链接:https://www.haomeiwen.com/subject/btajaltx.html