-(BOOL)textField:(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString*)string{if(range.location>0&&range.length==1&&string.length==0){// Stores cursor positionUITextPosition*beginning=textField.beginningOfDocument;UITextPosition*start=[textFieldpositionFromPosition:beginningoffset:range.location];NSIntegercursorOffset=[textFieldoffsetFromPosition:beginningtoPosition:start]+string.length;// Save the current text, in case iOS deletes the whole textNSString*text=textField.text;// Trigger deletion[textFielddeleteBackward];// iOS deleted the entire stringif(textField.text.length!=text.length-1){textField.text=[textstringByReplacingCharactersInRange:rangewithString:string];// Update cursor positionUITextPosition*newCursorPosition=[textFieldpositionFromPosition:textField.beginningOfDocumentoffset:cursorOffset];UITextRange*newSelectedRange=[textFieldtextRangeFromPosition:newCursorPositiontoPosition:newCursorPosition];[textFieldsetSelectedTextRange:newSelectedRange];}returnNO;}returnYES;}