给数字键盘添加完成按钮的坑

叶恩
2023-12-01

keyboardType=UIKeyboardTypeNumberPad的textField左下角添加完成按钮:用的是假按钮覆盖的办法,不是自定义整个键盘。


思路是

监听系统通知UIKeyboardWillShowNotification,获取系统动画的参数,然后给自己造的的完成按钮做和系统同步的升起键盘动画,达到以假乱真的效果。

再监听UIKeyboardWillHideNotification通知做相反的退下键盘动画(我这里直接remove了,没做动画,因为按钮在底部,视觉残留察觉不到哈)。


本来已经以假乱真了,但是当有多个textField,并且其中有非UIKeyboardTypeNumberPad的textField的secureTextEntry属性为YES的时候,textField之间切换的时候UIKeyboardWillShowNotification通知发送的时机就不对了:

原来是:keyboardType不同的texdField之间切换的时候会发UIKeyboardWillShowNotification通知

现在是:secureTextEntry=YES && keyboardType=UIKeyboardTypeDefault 和 keyboardType=UIKeyboardTypeNumberPad 之间切就不发通知了,感觉是变成同一种了。。。他们只有和secureTextEntry=NO && keyboardType=UIKeyboardTypeDefault的textField切的时候会发通知。


感觉secureTextEntry属性让UIKeyboardWillShowNotification通知错乱了。。。求解!



 类似资料: