2008-11-26 30 views
128

Làm thế nào để bạn thêm nút "X" nhỏ ở bên phải của một UITextField xóa văn bản? Tôi không thể tìm thấy thuộc tính để thêm điều khiển con này trong Bộ dựng giao diện trong SDK hệ điều hành 2.2 của iPhone.Thêm nút "Xóa" vào iPhone UITextField

Lưu ý: Trong Xcode 4.x trở lên (iPhone 3.0 SDK trở lên), bạn có thể thực hiện việc này trong Trình tạo giao diện.

Trả lời

272

Nút này là lớp phủ tích hợp được cung cấp bởi lớp UITextField, nhưng với SDK OS 2.2 của iPhone, không có cách nào để đặt nó qua Trình tạo giao diện. Bạn phải kích hoạt nó theo chương trình.

Thêm dòng mã này ở đâu đó (viewDidLoad, ví dụ):

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

UPDATE: Phiên bản mới nhất của Xcode IB không hỗ trợ tài sản.

+2

- Xin chào. Tôi có thể chỉnh sửa kích thước của clearButtonMode trên textField .. – NiKKi

32

bạn có thể thêm nút tùy chỉnh rõ ràng và kiểm soát kích thước và tất cả mọi thứ bằng này:

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

Bạn cũng có thể thiết lập này trực tiếp từ giao diện Builder dưới Attributes Inspector.

enter image description here

Taken từ XCode 5,1

+1

Lưu ý rằng câu hỏi cụ thể hỏi về SDK 2.2 và lưu ý rằng tùy chọn này có sẵn trong Trình tạo giao diện trong các phiên bản sau. –

25

Swift 3:

textField.clearButtonMode = UITextFieldViewMode.WhileEditing 

hoặc thậm chí ngắn hơn:

textField.clearButtonMode = .whileEditing 
+0

Sửa loại enum. Không được bắt đầu từ chữ hoa. –

6

Objective C:

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

Swift:

txtUserNameTextfield.clearButtonMode = UITextFieldViewMode.WhileEditing; 
4

này không làm việc, làm như tôi:

nhanh chóng:

customTextField.clearButtonMode = UITextFieldViewMode.Always 

customTextField.clearsOnBeginEditing = true; 

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

Mở Xcode 8 (8A218a):

Swift:

textField.clearButtonMode = UITextFieldViewMode.whileEditing; 

Chữ "W" được chuyển từ vốn thành không "cap".

-2

Trên phiên bản Xcode 8.1 (8B62), bạn có thể thực hiện trực tiếp trong Thanh tra thuộc tính. Chọn textField và sau đó chọn tùy chọn thích hợp từ Clear Button hộp thả xuống, mà nằm trong Attributes Inspector.

Các vấn đề liên quan