IPhone UITextField में "क्लियर" बटन जोड़ना


175

आप UITextField के दाईं ओर उस छोटे "X" बटन को कैसे जोड़ते हैं जो पाठ को साफ करता है? आईफोन ओएस 2.2 एसडीके में इंटरफेस बिल्डर में इस उप-नियंत्रण को जोड़ने के लिए मुझे एक विशेषता नहीं मिल सकती है।

नोट: Xcode 4.x और बाद में (iPhone 3.0 SDK और बाद में), आप इंटरफ़ेस बिल्डर में कर सकते हैं।

जवाबों:


329

यह बटन एक अंतर्निहित ओवरले है जो UITextFieldकक्षा द्वारा प्रदान किया जाता है , लेकिन iOS 2.2 एसडीके के रूप में, इंटरफ़ेस बिल्डर के माध्यम से इसे सेट करने का कोई तरीका नहीं है। आपको इसे प्रोग्रामेटिक रूप से सक्षम करना होगा।

कोड की इस पंक्ति को कहीं जोड़ें ( viewDidLoadउदाहरण के लिए):

उद्देश्य सी

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

स्विफ्ट 5.0

myUITextField.clearButtonMode = .whileEditing

61

आप इसे Attributes Inspector के तहत इंटरफेस बिल्डर से सीधे सेट भी कर सकते हैं।

यहां छवि विवरण दर्ज करें

XCode 5.1 से लिया गया


1
ध्यान दें कि प्रश्न विशेष रूप से 2.2 एसडीके के बारे में पूछता है, और नोट करता है कि यह विकल्प बाद के संस्करणों में इंटरफ़ेस बिल्डर में उपलब्ध है।
क्रिस्टोफर जॉनसन

47

स्विफ्ट 4+:

textField.clearButtonMode = UITextField.ViewMode.whileEditing

या इससे भी कम:

textField.clearButtonMode = .whileEditing

फिटकरी टाइप करें। बड़े अक्षर से शुरू नहीं करना चाहिए।
टी। पास्चनिक

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];

7

उद्देश्य सी :

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

स्विफ्ट:

txtUserNameTextfield.clearButtonMode = UITextField.ViewMode.WhileEditing;

6

स्विफ्ट 4 (क्रिस्टोफर जॉनसन के जवाब से अनुकूलित)

textfield.clearButtonMode = .always

textfield.clearButtonMode = .whileEditing

textfield.clearButtonMode = .unlessEditing

textfield.clearButtonMode = .never

6

यह काम नहीं करता, मेरी तरह करो:

तेजी से:

customTextField.clearButtonMode = UITextField.ViewMode.Always

customTextField.clearsOnBeginEditing = true;

func textFieldShouldClear(textField: UITextField) -> Bool {
    return true
}

6

Xcode 8 (8A218a) पर:

स्विफ्ट:

textField.clearButtonMode = UITextField.ViewMode.whileEditing;

"डब्ल्यू" पूंजी से गैर-कैप "डब्ल्यू" में चला गया।


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

     }
}

-4

Xcode संस्करण 8.1 (8B62) पर यह सीधे Attributes Inspector में किया जा सकता है। TextField का चयन करें और फिर Clear Button ड्रॉप डाउन बॉक्स से उपयुक्त विकल्प चुनें, जो Attributes Inspector में स्थित है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.