How can i detect backspace button pressed on UIKeyboard
?
thanks
EDIT: Is there any keyboard delegate that returns key pressed value?
if the UITextField is empty, the shouldChangeTextInRange delegate method is not called You 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...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With