2012-04-06 25 views
7

Tôi không thể thực hiện nút "Xong" để thoát khỏi bàn phím.Chức năng nút bàn phím Xcode của iOS được thực hiện

tôi đã sử dụng này trong tập tin controller.h tôi

- (IBAction)textFieldDoneEditing:(id)sender; 

và điều này cho file controller.m tôi

- (IBAction)textFieldDoneEditing:(id)sender { 
    [sender resignFirstResponer]; 
} 

và tôi đang lẫn lộn trong hệ thống dây điện phần .xib.

+1

Tôi nghĩ bạn phải quên đặt 'đại biểu' cho trường văn bản của bạn. – Kjuly

+0

bài đăng tương tự trên Stackoverflow, hãy theo dõi nó. http://stackoverflow.com/questions/2828826/iphone-keyboard-done-button-and-resignfirstresponder – AsifHabib

Trả lời

23

Tận dụng điều khiển một đại biểu của UITextField/UITextView trong IB hoặc từ mã như textField.delegate = self;

ngồi biên tập: Đối với điều này bạn cần phải khai báo các bộ điều khiển một đại biểu của UITextFieldDelegate/UITextViewDelegate như

@interface Controller : <UITextFieldDelegate> { ... 

, sau đó ghi đè phương thức:

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

cho UITextField và

-(BOOL)textViewShouldEndEditing:(UITextView *)textView{ 
    [textView resignFirstResponder]; 
    return YES; 
} 

cho UITextView

+1

controller.h cũng cần tuyên bố rằng nó sẽ sử dụng giao thức UITextFieldDelegate. – Marco

+0

@Marco Cảm ơn. Đã chỉnh sửa câu trả lời. – skonb

+1

Cuối cùng là ví dụ làm việc. Cảm ơn bạn –

1

Trong .xib của bạn, nhấp chuột phải vào xem văn bản của bạn, kéo để "Chủ đầu tư tập", và bấm vào nút "đại biểu". Nên làm việc bây giờ?

Chỉnh sửa: Rất tiếc, xin lỗi tôi là kẻ ngốc, hãy làm những gì người khác nói. Nếu bạn không biết làm thế nào để thiết lập các đại biểu trong mã mặc dù, bạn có thể làm điều đó theo cách của tôi trong IB.

+0

Tôi đã đặt đại biểu trong mã, nhưng CSONG phải kết nối các trường văn bản trong IB như bạn đề xuất, vì vậy cảm ơn bạn đã đăng câu trả lời này. –

0

Hãy để tôi đóng góp đầu tiên của tôi: Nếu bạn có nhiều lĩnh vực văn bản, nhóm chúng trong một @property (mạnh, nonatomic)

* .h

@property (strong, nonatomic) IBOutletCollection(UITextField) NSArray *collectingData; 

* .m

-(BOOL)textFieldShouldReturn:(UITextField *)boxes 
    { 
     for (UITextField *boxes in collectingData) { 
     [boxes resignFirstResponder]; 
    } 
    return YES; 

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