I am implementing a search bar from my local database that searches from db as user enters info.The issue is that i concat recent character and the previous ones and then send it for search.How can I REMOVE the character (last one) when back key is pressed.I am using
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
Thanks for the replies
You can get the string that is supposed to be in text field after this method:
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
And that newString
you probably can use 'as is' for searching the database.
If you just want to get the event when user deletes some characters in textField - then you can check it the following way:
if ([string length] == 0 && range.length > 0)
//Some characters deleted
for swift users:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if string.characters.count == 0 && range.length > 0 {
// Back pressed
return false
}
return true
}
Better idea - in textField:shouldChangeCharactersInRange:replacementString: set up a conditional to return NO when there are no more characters...
if ((range.location == 0) && (string.length == 0))
{
NSLog(@"is cleared!");
return NO;
}
return YES;
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