2012-04-23 28 views
7

Tôi muốn làm cho bàn phím biến mất khi người dùng nhấp chuột vào nút "trở lại", tôi được cho biết để sử dụngtextFieldShouldReturn không được gọi

-(BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [tf resignFirstResponder]; 
    return YES; 
} 

Nhưng không có gì xảy ra khi tôi nhấp vào nút "trở lại", phương pháp này thậm chí không được gọi. Tôi đang làm điều này trong

@interface gameOverMenu : UIView 

không có trong ViewController. Tôi cũng không sử dụng trình tạo giao diện. Tôi nên làm gì?

+0

Bạn đã đặt đại biểu của UITextField cho đối tượng có chứa phương pháp chưa? – MarkPowell

+0

Bạn đã chỉ định trình điều khiển chế độ xem của mình là chưa? – lukecampbell

Trả lời

26

Bạn cần phải chắc chắn rằng bạn thực hiện UITextFieldDelegate và thiết lập đại biểu UITextField của bạn để tự. Trong file .h của bạn:

@interface gameOverMenu : UIView <UITextFieldDelegate> 

Và ở đâu đó trong file .m của bạn (viewDidLoad: maybe):

self.yourTextField.delegate = self; 

Bây giờ bạn - (BOOL) textFieldShouldReturn: Phương pháp TextField (UITextField *) nên được gọi là .

+0

cảm ơn bạn đã giúp đỡ! – Alexander

+0

không sao cả. chỉ fyi kể từ khi tôi thấy bạn là mới - đó là thực tế phổ biến để đánh dấu câu trả lời của tôi là chính xác nếu nó là một trong đó đã giúp bạn tốt nhất. hệ thống phần thưởng :) – nicholjs

+0

Bỏ phiếu yêu cầu 15 danh tiếng – Alexander

0

Hãy chắc chắn rằng bạn đã thiết lập các tầng lớp phụ huynh (bất cứ điều gì) như là một UITextFieldDelegate

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