问题
How can i detect backspace button pressed on UIKeyboard
?
thanks
EDIT: Is there any keyboard delegate that returns key pressed value?
回答1:
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.
回答2:
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;
}
回答3:
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...
来源:https://stackoverflow.com/questions/6818342/how-to-detect-uikeyboard-backspace-button-touch-on-uitextfield