Can't hide the keyboard with shouldChangeCharactersInRange
ios, iphone, objective-c, uitextfield, xcode
Solution
If you want to hide the keyboard after tapping the `return` key add the following to your code:
if ([string isEqualToString:@"\n"]) {
[theTextField resignFirstResponder];
return NO;
}
Hope it helps
Problem
This is my code: ``` - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSCharacterSet *nonNumberSet = [[NSCharacterSet characterSetWithCharactersInString:@"אבגדהוזחטיכלמנסעפצקרשתףץםן"] invertedSet]; // max charcters NSUInteger newLength = [textField.text length] + [string length] - range.length; if (newLength > 14) return NO; // allow backspace if (range.length > 0 && [string length] == 0) { return YES; } // do not allow . at the beggining if (range.location == 0 && [string isEqualToString:@"."]) { return NO; } if ((range.location > 0) && (([[textField.text substringWithRange:NSMakeRange((range.location -1), 1)] isEqualToString:@"ף"]) || ([[textField.text substringWithRange:NSMakeRange((range.location -1), 1)] isEqualToString:@"ץ"]) || ([[textField.text substringWithRange:NSMakeRange((range.location -1), 1)] isEqualToString:@"ם"]) || ([[textField.text substringWithRange:NSMakeRange((range.location -1), 1)] isEqualToString:@"ן"]))) { return NO; } // set the text field value manually NSString *newValue = [[textField text] stringByReplacingCharactersInRange:range withString:string]; newValue = [[newValue componentsSeparatedByCharactersInSet:nonNumberSet] componentsJoinedByString:@""]; textField.text = newValue; // return NO because we're manually setting the value return NO; } ``` I just want to do when you click on Return the keyboard will disappear. I can't do that. where to add it and how?