How to detect UIKeyboard "backspace" button touch on UITextField? [duplicate]
if the UITextField is empty, the shouldChangeTextInRange delegate method is not calledYou can subclass UITextField and override this method:
-(void)deleteBackward;{ [super deleteBackward]; NSLog(@"BackSpace Detected");}
since UITextField is compliant to the UITextInput protocol, this method is implemented, and you can override it to detect when backspace is pressed.Then, you can write your own protocol/delegate method to alert your custom textfield delegate if the backspace is detected.
First of all your UIViewController
that references the UITextField
needs to conform to the UITextFieldDelegate
protocol
. Then set your class as delegate
to the UITextField
(eg. [myTextField setDelegate:self]
). Then in your class you add the following. When a string of "" is sent as the replacementString
you know it's backspace.
(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if ([string isEqualToString:@""]) { NSLog(@"Backspace"); } return YES;}
Temporary i'm inserting a zero space char on textFieldDidBeginEditing
textField.text = @"\u200B";
on backspace, it remove that chars, but graphically it's the same!
It's an hack, it works, but it hide placeholder text... not good...