إضافة زر "مسح" آي فون UITextField
-
11-07-2019 - |
سؤال
كيف يمكنك إضافة القليل "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) يمكن أن يتم ذلك مباشرة في سمات المفتش. حدد حيز النص ثم اختر الخيار المناسب من مسح زر المنسدلة مربع، والذي يقع في سمات المفتش.