如何在清除文本的UITextField右侧添加那个小“X”按钮?我无法在iPhone OS 2.2 SDK的Interface Builder中找到用于添加此子控件的属性。
注意:在Xcode 4.x及更高版本(iPhone 3.0 SDK及更高版本)中,您可以在Interface Builder中执行此操作。
答案 0 :(得分:303)
此按钮是由UITextField类提供的内置叠加层,但是从iPhone OS 2.2 SDK开始,没有任何方法可以通过Interface Builder进行设置。您必须以编程方式启用它。
在某处添加这行代码(例如viewDidLoad):
myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;
更新:最新版本的Xcode IB确实支持此属性。
答案 1 :(得分:56)
您也可以直接在Interfaces Inspector下的Interface Builder中设置它。
取自XCode 5.1
答案 2 :(得分:37)
斯威夫特3:
textField.clearButtonMode = UITextFieldViewMode.whileEditing
甚至更短:
textField.clearButtonMode = .whileEditing
答案 3 :(得分:35)
您可以添加自定义清除按钮并使用此控制大小和所有内容:
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];
答案 4 :(得分:7)
目标C:
self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;
斯威夫特:
txtUserNameTextfield.clearButtonMode = UITextFieldViewMode.WhileEditing;
答案 5 :(得分:6)
迅速4 (改编自Kristopher Johnson的答案)
textfield.clearButtonMode = .always
textfield.clearButtonMode = .whileEditing
textfield.clearButtonMode = .unlessEditing
textfield.clearButtonMode = .never
答案 6 :(得分:5)
这不工作,跟我一样:
迅速:
customTextField.clearButtonMode = UITextFieldViewMode.Always
customTextField.clearsOnBeginEditing = true;
func textFieldShouldClear(textField: UITextField) -> Bool {
return true
}
答案 7 :(得分:4)
在Xcode 8(8A218a)上:
斯威夫特:class Array
alias_method :new_map_method, :map
end
" W"从资本到非上限" w"。
答案 8 :(得分:0)
func clear_btn(box_is : UITextField){
box_is.clearButtonMode = .always
if let clearButton = box_is.value(forKey: "_clearButton") as? UIButton {
let templateImage = clearButton.imageView?.image?.withRenderingMode(.alwaysTemplate)
clearButton.setImage(templateImage, for: .normal)
clearButton.setImage(templateImage, for: .highlighted)
clearButton.tintColor = .white
}
}
答案 9 :(得分:-4)
在Xcode版本8.1(8B62)上,可以直接在Attributes Inspector中完成。选择textField,然后从Clear Button下拉框中选择适当的选项,该选项位于Attributes Inspector中。