LoginSignup
2
2

More than 5 years have passed since last update.

UITextFieldでclearButtonをカスタマイズする

Posted at

入力中に表示されるclearButton(×マーク)をカスタマイズ

UITextFieldのrightViewにUIButtonを設定し、
rightViewModeにUITextFieldViewModeWhileEditingをすれば、
デフォルトの動作を再現できるハズだが、挙動が怪しい。

どうやら、iOSのバグみたい。
以下、デフォルトの動作に近づける方法。

- (void)setup
{
  UIButton *clearButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
  self.rightView = clearButton;
  [clearButton addTarget:self action:@selector(clearButtonPushed:) forControlEvents:UIControlEventTouchUpInside];
  [self addTarget:self action:@selector(onEditing:) forControlEvents:UIControlEventEditingChanged];
}

- (void)clearButtonPushed:(id)sender
{
  self.text = @"";
  self.rightViewMode = UITextFieldViewModeNever;
}

- (void)onEditing:(id)sender
{
  if(![self.text isEqualToString:@""]){
    self.rightViewMode = UITextFieldViewModeAlways;
  }else{
    self.rightViewMode = UITextFieldViewModeNever;
  }
}

参考リンク

UITextField rightView “WhileEditing” problem

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2