سؤال

كيف يمكنك إضافة القليل "X" الموجود على الجانب الأيمن من UITextField أن مسح النص ؟ لا أستطيع العثور على سمة إضافة هذا الفرعية التحكم في واجهة البناء في نظام التشغيل اي فون 2.2 SDK.

ملاحظة: في كسكودي 4.x وما بعدها (اي فون 3.0 SDK و في وقت لاحق) ، يمكنك أن تفعل هذا في واجهة البناء.

هل كانت مفيدة؟

المحلول

هذا الزر هو المدمج في تراكب التي يتم توفيرها من قبل UITextField الدرجة ، ولكن من iPhone OS 2.2 SDK, ليس هناك أي وسيلة إلى تعيين ذلك عن طريق واجهة البناء.لديك لتمكين برمجيا.

إضافة هذا السطر من التعليمات البرمجية في مكان ما (viewDidLoad ، على سبيل المثال):

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

تحديث: أحدث نسخة من كسكودي IB لا يدعم هذه الخاصية.

نصائح أخرى

ويمكنك أيضا تعيين هذا مباشرة من واجهة البناء تحت المفتش السمات.

ومأخوذة من كسكودي 5.1

وسويفت 4 +:

textField.clearButtonMode = UITextField.ViewMode.whileEditing

وأو حتى أقصر:

textField.clearButtonMode = .whileEditing

ويمكنك إضافة زر واضح العرف والتحكم في حجم وكل شيء باستخدام هذا:

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

الهدف C:

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

وسويفت:

txtUserNameTextfield.clearButtonMode = UITextField.ViewMode.WhileEditing;

سويفت 4 (مقتبس من كريستوفر جونسون الإجابة)

textfield.clearButtonMode = .always

textfield.clearButtonMode = .whileEditing

textfield.clearButtonMode = .unlessEditing

textfield.clearButtonMode = .never

وهذه لا تعمل، هل مثلي:

<اقتباس فقرة>   

وسريع:

customTextField.clearButtonMode = UITextField.ViewMode.Always

customTextField.clearsOnBeginEditing = true;

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

في كسكودي 8 (8A218a):

وسويفت:

textField.clearButtonMode = UITextField.ViewMode.whileEditing;

وو"W" ذهب من رأس المال لغير كاب "ث".

  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

     }
}

في كسكودي النسخة 8.1 (8B62) يمكن أن يتم ذلك مباشرة في سمات المفتش. حدد حيز النص ثم اختر الخيار المناسب من مسح زر المنسدلة مربع، والذي يقع في سمات المفتش.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top