Добавление кнопки "Очистить" на iPhone UITextField
Как вы добавляете эту маленькую кнопку "X" в правой части UITextField, которая очищает текст? Я не могу найти атрибут для добавления этого субконтроля в Interface Builder в SDK iPhone OS 2.2.
Примечание.. В Xcode 4.x и более поздних версиях (SDK SD 3.0 и выше) вы можете сделать это в Interface Builder.
Ответы
Ответ 1
Эта кнопка является встроенным оверлеем, предоставляемым классом UITextField, но в случае iPhone OS 2.2 SDK ее невозможно установить с помощью Interface Builder. Вы должны включить его программно.
Добавьте эту строку кода куда-нибудь (например, viewDidLoad):
Objective-C
myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;
Swift 5.0
myUITextField.clearButtonMode = UITextField.ViewMode.whileEditing
ОБНОВЛЕНИЕ: Последняя версия Xcode IB поддерживает это свойство.
Ответ 2
Вы также можете установить это прямо из Interface Builder в Инспекторе атрибутов.
![enter image description here]()
Взято из XCode 5.1
Ответ 3
Свифт 4+:
textField.clearButtonMode = UITextField.ViewMode.whileEditing
или даже короче:
textField.clearButtonMode = .whileEditing
Ответ 4
вы можете добавить пользовательскую кнопку очистки и контролировать размер и все, используя это:
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];
Ответ 5
Цель C:
self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;
Свифт:
txtUserNameTextfield.clearButtonMode = UITextField.ViewMode.WhileEditing;
Ответ 6
это не работает, делай как я:
скоро:
customTextField.clearButtonMode = UITextField.ViewMode.Always
customTextField.clearsOnBeginEditing = true;
func textFieldShouldClear(textField: UITextField) -> Bool {
return true
}
Ответ 7
На Xcode 8 (8A218a):
Swift:
textField.clearButtonMode = UITextField.ViewMode.whileEditing;
Буква "W" перешла из заглавной буквы в букву "w".
Ответ 8
Swift 4 (адаптировано из ответа Кристофера Джонсона)
textfield.clearButtonMode = .always
textfield.clearButtonMode = .whileEditing
textfield.clearButtonMode = .unlessEditing
textfield.clearButtonMode = .never
Ответ 9
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
}
}
Ответ 10
В Xcode версии 8.1 (8B62) это можно сделать непосредственно в Attributes Inspector. Выберите textField, а затем выберите соответствующую опцию из раскрывающегося списка Кнопка Clear, который находится в Attributes Inspector.