2012-03-05 20 views

Trả lời

7

Những gì tôi làm là có inputView tôi như là một giao diện tùy chỉnh, trong đó có một UIDatePicker và một thanh công cụ ở trên nó với một nút 'Xong' dây lên đến một phương pháp mà các cuộc gọi một phương pháp đại biểu nói với đối tượng sở hữu UITextField để sa thải "bàn phím" bằng cách gọi resignFirstResponder.

+0

Tâm cung cấp một số mã để thiết lập UIBarButtonItem trên UIToolBar? – 8vius

+1

@ 8vius - đó thực sự không phải là câu hỏi ở đây. Nếu bạn thực sự cần trợ giúp với điều đó tôi khuyên bạn nên đọc các tài liệu cho 'UIBarButtonItem' và' UIToolbar' và nếu bạn vẫn còn bị mắc kẹt, hãy hỏi một câu hỏi khác. – mattjgalloway

+0

@mattjgalloway Tôi làm theo cách này, nhưng gọi 'resignFirstResponder' không đưa bàn phím xem tùy chỉnh đầu vào xuống – onmyway133

0

Tôi đã thực hiện một điều tương tự nơi tôi đã tạo chế độ xem bằng nút và UIDatePicker, sau đó trình bày chế độ xem đó thay vì chỉ UIDatePicker một mình. Sau đó, nút chỉ được kết nối với một số IBAction để di chuyển chế độ xem ra ngoài.

Bằng cách này, nút di chuyển với chế độ xem UIDatePicker và chúng trông "được kết nối" với người dùng. Bạn thậm chí có thể xác định điều này UIView trong ngòi bút của bạn và sử dụng addSubview: khi chạy.

2

Tạo UIView (cụ thể là customDatePickerView) và trong chế độ xem đó, tạo datepicker và nút xong và nút hủy trong xib. Trong các đại biểu textfield:

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    if (textField == textfieldName) { 
     [textfieldName resignFirstResponder]; 
     //show the view 
     self.customDatePickerView.hidden = NO; 

    } 

}//dismisses keyboard 

Function trên Ngày Picker Value Changed

- (IBAction)onDatePickerClick:(id)sender { 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
    [dateFormatter setDateFormat:@"MM/dd/YYYY"]; 
    NSDate *selectedDate = [self.wellRecordDatePicker date]; 
    NSString *recordDate = [dateFormatter stringFromDate:selectedDate]; 
    self.yourTextfieldName.text = recordDate; 


} 

- (IBAction)onDoneBtnClick:(id)sender 
{ 
     self.customDatePickerView.hidden = YES; 
} 
- (IBAction)onCancelBtnClick:(id)sender 
{ 
     self.customDatePickerView.hidden = YES; 
} 

Hy vọng điều này sẽ giúp bạn.

0

Bạn có thể giải quyết việc này bằng cách bổ sung này

[self.view endEditing:YES]; 

Thêm này, nơi bạn muốn bỏ chọn ngày như tôi đã thêm này trên tap cử chỉ
On viewDidLoad thêm một Tapgesture

UITapGestureRecognizer *gesRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; // Declare the Gesture. 
    gesRecognizer.delegate = self; 
    [self.view addGestureRecognizer:gesRecognizer]; 

Sau thêm điều này vào viewdidLoad Thêm phương pháp này để phát hiện trình nhận dạng cử chỉ

- (void)handleTap:(UITapGestureRecognizer *)gestureRecognizer{ 
    NSLog(@"Tapped"); 
    [self.view endEditing:YES]; 
}