您的当前位置:首页关于textField的cleanButton这点小事

关于textField的cleanButton这点小事

2024-12-13 来源:哗拓教育

大多数情况下,你的textfield背景,并不会是白色的,或者是浅色的,这样,就会有一个问题,你会发现你的cleanbutton很难发现。想要改变一下这本button的颜色。
首先需要找到这个button

UIButton *clearButton = [self valueForKey:@"_clearButton"];
clearButton.backgroundColor = [UIColor whiteColor];

设置好颜色,运行发现,周围有一圈白色的(或者是你自定义的一个背景色),应为这个button的大小是1919的,这个imageView的大小是1414的,如果你试图改变这个imageview的大小来直接消掉这个白圈,那是徒劳的,这个大小是不能改变的😞😞。
解决办法,就是让设计大大给你做一个图啦,直接把button的背景图片改掉啦🙂😊。

题外话:用这个方法直接找到这个button算不算使用了苹果的私有API,上架会不会被拒,我就真的不晓得了,如果知道的,还请告知。

如果你害怕这样被拒,那就自定义一个cleanbutton,也是很简单,这里,我们定义一个textfield的子类,来实现这个功能
添加一个button到textfield上边,位置什么的自己定好了,先隐藏系统的和你自定义的button

self.clearButtonMode = UITextFieldViewModeNever;
customButton.hidden = YES;

在开始编辑的代理方法里写

self.customButton.hidden = NO;

结束编辑的时候,隐藏按钮

- (void)textFieldDidEndEditing:(UITextField *)textField {
    self.customButton.hidden = YES;
}

butotn的点击方法里写上

self.text = nil;

这样你就可以实现自定义一个cleanbutton了,好了,可以愉快的写代码了,如果有别的好的方法,还请大牛们不吝赐教。

显示全文