If you use UITextField, your delegate textField:shouldChangeCharactersInRange:replacementString:will be called with a range of length 1 and an empty replacement. However, if nothing is deleted, you will not receive a notification.
If you use a UITextView, your delegate textView:shouldChangeTextInRange:replacementText:will be called with a range of length 1 and an empty replacement. However, if nothing is deleted, you will not receive a notification.
, UIKeyInput, , deleteBackward. , , UITextInput ( UIKeyInput), replaceRange:withText: setMarkedText:selectedRange: 1 , .