当UITextField控件内容不为空的时候,可以通过UITextFiedlDelegate协议中的- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string方法知道用户是否点击了键盘上的删除按钮,判断string.length是否为0即可;而当删除完所有的文字之后,再点击删除按钮,这个回调是不执行的,那么该怎么办呢?
可以这样做:UITextFiled是遵循UIKeyInput协议的,可以重写deleteBackward方法,或者swizzle这个方法,就可以啦,不要忘记执行一下原有方法哦,否则原有点击删除按钮会无效。这种方式不管输入框内是否有内容,都可以知道用户是否点击了键盘上的删除按钮。
另外,如果想实现一些简单的文本输入,比如说微信或者支付宝输入密码的控件,输入验证码控件等,不需要UITextFiled或者UITextView那么多冗余的功能,可以直接自己实现UIKeyInput协议,非常的给力!
,