2012-03-28 49 views

回答

21

你应该创建你自己的UIButton(带图像,你需要一个你想要的png按钮),将它实例化并将这个按钮放在你的UITextField的右侧视图中。

CGFloat myWidth = 26.0f; 
CGFloat myHeight = 30.0f; 
UIButton *myButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, myWidth, myHeight)]; 
[myButton setImage:[UIImage imageNamed:@"myButtonImage"] forState:UIControlStateNormal]; 
[myButton setImage:[UIImage imageNamed:@"myButtonImage"] forState:UIControlStateHighlighted]; 

[myButton addTarget:self action:@selector(doClear:) forControlEvents:UIControlEventTouchUpInside]; 

myTextField.rightView = myButton; 
myTextField.rightViewMode = UITextFieldViewModeUnlessEditing; 

你可能需要改进使用比对(这些是示例值):

myButton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0); 

然后,你将需要实现方法 - (无效)doClear(ID)发送;这将清除您的文本框。

+0

非常感谢!我会尝试它! – sergiocg90 2012-03-28 20:38:40

+1

如果您需要显示“编辑时”按钮,则需要将'rightViewMode'更改为'UITextFieldViewModeWhileEditing' – 2012-03-28 20:40:36

+1

我制作了一个可用的示例清除按钮。 https://www.chillysky.com/apps/Clear.png – 2013-08-12 04:58:26