将“清除”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适当的选项。