UITextField にカスタム クリア ボタンを作成する必要があるため、rightView を使用しています。コードは以下のとおりです。
UIImage *clearImage = [[UIImage imageNamed:@"search-clear.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0,0.0, 0.0, 0.0)];
UIImageView *clearImageView = [[UIImageView alloc]initWithImage:clearImage];
UIButton *clearButton = [UIButton buttonWithType:UIButtonTypeCustom];
clearButton.frame = clearImageView.frame;
[clearButton setBackgroundImage:clearImage forState:UIControlStateNormal];
clearButton.backgroundColor = [UIColor clearColor];
self.emailTextField.rightViewMode = UITextFieldViewModeWhileEditing;
self.emailTextField.rightView = clearButton;
self.emailTextField.clearButtonMode = UITextFieldViewModeNever;
ただし、ボタンは正しいタイミングで表示されません。テキストフィールドがテキスト長0でのみフォーカスされていることを示しています。入力を開始するとすぐに消えます。文字列が 1 文字以上のときに表示されるように、クリア ボタンを置き換えて複製する方法を理解する必要があります。