2012-07-05 14 views
12

Trong iPhone, tôi có chế độ xem có UITextField. Khi tôi nhấp vào nút rõ ràng của bàn phím UITextField sẽ biến mất, không phải văn bản trong UITextField. samething hoạt động chính xác. Hãy đề nghị tôi, phải làm gì? Cảm ơn trước !!Khi nhấp vào bàn phím xóa của uitextfield đang biến mất, không phải văn bản

+2

Bạn có thể gửi mã cách bạn xử lý nút rõ ràng? –

+0

Kiểm tra xem nút rõ ràng có bị chặn bởi một chế độ xem khác hay không và do đó, không nhận được sự kiện chạm. – Christopher

Trả lời

5

Thứ nhất, rà soát tất cả các khối mã liên quan đến UITextField của bạn (đặc biệt là các mã yourTextField.hidden = YES;)

điểm break Đặt và phân tích mỗi UITextField đại biểu mà bạn thực hiện.

(textFieldDidEndEditing, textFieldShouldEndEditing, textFieldShouldReturn.etc.)

HOẶC

Thực hiện textFieldShouldClear đại biểu và viết mã vào đây để có thể nhìn thấy và rõ ràng của bạn UITextField

Để làm điều này, bạn phải thiết lập số clearButtonMode như bên dưới,

yourTextField.clearButtonMode = UITextFieldViewModeWhileEditing; 
yourTextField.delegate = self; 

//For active keyboard again 
[yourTextField becomeFirstResponder]; 

Sau đó thực hiện các textFieldShouldClear đại biểu

YourClass.h

@interface className : UIViewController <UITextFieldDelegate> 

YourClass.m

-(BOOL)textFieldShouldClear:(UITextField *)textField { 
    yourTextField.hidden = NO; 
    yourTextField.text = @""; 
    return YES; 
} 
+0

cảm ơn tất cả các câu trả lời của bạn Tôi gặp vấn đề khi tôi đang phạm sai lầm. Tôi đã làm đúng cách – Mad

8

Hãy thử mã này sau khi bạn đính kèm đại biểu của uitextifield

-(BOOL)textFieldShouldClear:(UITextField *)textField 
{ 
    return true; 
} 
3

Chỉ cần chắc chắn U've cho hai

editingTextField.delegate = self; 
editingTextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

TextFieldShouldClear chỉ cần thiết nếu bạn cần phải làm một số tùy chỉnh :-)

Bạn đang thực hiện một số điều trong phương pháp này?

Có thể bạn đang gọi resignFirstResponder trong phương thức ủy quyền này, đó là lý do bàn phím bị loại bỏ.

Vui lòng xem qua các phương thức ủy nhiệm và kiểm tra xem bạn đang làm gì chính xác.

29

Chỉ cần xóa các lĩnh vực, resignFirstResponder (nếu bạn muốn ẩn bàn phím) và trở về NO/sai

Note: set Attributes inspector property of UITextField 

Rõ ràng Button -> Xuất hiện trong khi chỉnh sửa

so it will display 'X' button while editing in textfield. 

// Mục tiêu-C

-(BOOL)textFieldShouldClear:(UITextField *)textField 
{ 
    textField.text = @""; 
    [textField resignFirstResponder]; 
    return NO; 
} 

// Swift

func textFieldShouldClear(textField: UITextField) -> Bool { 
    textField.text = "" 
    textField.resignFirstResponder() 
    return false 
} 
2

Vấn đề này cũng xảy ra nếu bạn có

yourTextField.clearButtonMode = UITextFieldViewModeNever; 

Kiểm tra dòng này và xóa nó hoặc thay đổi chế độ xem ..