我想要做的是在UITextField中做一个自定义清除按钮,目前除了最后一部分我已经完成了所有工作。这是为了让它成为明确的行动。但是,我还没有弄清楚我是如何清除它的,只是它所在的textField。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[textField setTextColor:[UIColor colorWithRed:0.56f green:0.56f blue:0.56f alpha:1.00f]];
[textField setFont:[UIFont systemFontOfSize:14]];
textField.background = [UIImage imageNamed:@"whiteCell"];
UIButton *btnColor = [UIButton buttonWithType:UIButtonTypeCustom];
[btnColor addTarget:self action:@selector(clearText:) forControlEvents:UIControlEventTouchUpInside];
btnColor.frame = CGRectMake(0, 0, 25, 25);
[btnColor setBackgroundImage:[UIImage imageNamed:@"clearBut"] forState:UIControlStateNormal];
textField.rightView = btnColor;
textField.rightViewMode = UITextFieldViewModeAlways;
[textField addSubview:btnColor];
return YES;
}
这就是我在textField中创建按钮的方式,并且只在编辑时显示,因为你可以看到我调用clearText
然而我不确定如何发送当前的textField我在clearText
电话中清除姓名。
我知道我可以用很难的方式去做,并为每个textFields单独定义它,但我确信有一个更简单的方法可以解决这个问题,我还没有意识到。
答案 0 :(得分:1)
我建议继承UITextField
。这将不允许您在Storyboard中布置按钮,但在Code或.nib文件中应该可以工作。当然,您可以在故事板中使用UITextfield
子类。
在子类中添加UIButton
作为子视图,并在其操作方法调用中:
self.text = @""
如果您有任何其他问题,请与我们联系。
答案 1 :(得分:0)
鉴于您的按钮已作为子视图添加到文本字段,您可以转到按钮superview属性中的文本字段:
- (void) clearText:(UIButton*)sender
{
UITextField* textField = (UITextField*)sender.superview;
textField.text = nil;
}