将“清除”button添加到iPhone UITextField

如何在清除文本的UITextField的右侧添加这个小小的“X”button? 我无法在iPhone OS 2.2 SDK的Interface Builder中find添加此子控件的属性。

注意:在Xcode 4.x和更高版本(iPhone 3.0 SDK和更高版本)中,可以在Interface Builder中执行此操作。

此button是由UITextField类提供的内置叠加层,但是对于iPhone OS 2.2 SDK,无法通过Interface Builder对其进行设置。 您必须以编程方式启用它。

将这行代码添加到某处(例如viewDidLoad):

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

更新:最新版本的Xcode IB确实支持这个属性。

您也可以直接从属性检查器下的Interface Builder中设置。

在这里输入图像描述

取自XCode 5.1

你可以添加自定义清除button,并使用此控制大小和每件事情:

 UIButton *clearButton = [UIButton buttonWithType:UIButtonTypeCustom]; [clearButton setImage:img forState:UIControlStateNormal]; [clearButton setFrame:frame]; [clearButton addTarget:self action:@selector(clearTextField:) forControlEvents:UIControlEventTouchUpInside]; textField.rightViewMode = UITextFieldViewModeAlways; //can be changed to UITextFieldViewModeNever, UITextFieldViewModeWhileEditing, UITextFieldViewModeUnlessEditing [textField setRightView:clearButton]; 

Swift 3:

 textField.clearButtonMode = UITextFieldViewMode.WhileEditing 

甚至更短:

 textField.clearButtonMode = .whileEditing 

目标C:

 self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

Swift:

 txtUserNameTextfield.clearButtonMode = UITextFieldViewMode.WhileEditing; 

在Xcode 8上(8A218a):

迅速:

 textField.clearButtonMode = UITextFieldViewMode.whileEditing; 

“W”从大写字母变成非字母“w”。

这不行,像我这样做:

迅速:

 customTextField.clearButtonMode = UITextFieldViewMode.Always customTextField.clearsOnBeginEditing = true; func textFieldShouldClear(textField: UITextField) -> Bool { return true } 

在Xcode版本8.1(8B62)上可以直接在Attributes Inspector中完成。 selecttextField,然后从“属性”检查器中的“清除button”下拉框中select适当的选项。