2012-03-05 18 views
5

मेरे पास मेरे यूआई में एक टेक्स्ट फ़ील्ड है कि जब इसे चुना गया है तो डिफ़ॉल्ट कीबोर्ड के बजाय यूआईडीएटीपीकर प्रस्तुत करता है, तो उपयोगकर्ता द्वारा किए जाने पर पिकर को खारिज करने के लिए मैं बटन कैसे सेट कर सकता हूं?आईओएस - UIDatePicker को इनपुट के रूप में प्रस्तुत करें

उत्तर

7

मुझे क्या जो एक UIDatePicker और एक 'पूर्ण' बटन के साथ इसे ऊपर एक उपकरण पट्टी के लिए एक विधि है कि एक प्रतिनिधि प्रणाली को बुलाती है उद्देश्य यह है कि UITextField मालिक खारिज करने के लिए बताने के लिए अप करने के लिए तार शामिल कस्टम दृश्य भी मेरी inputView है resignFirstResponder पर कॉल करके "कीबोर्ड"।

+0

माइंड UIToolBar पर UIBarButtonItem स्थापित करने के लिए कुछ कोड प्रदान कर रहा है? – 8vius

+1

@ 8vius - यह वास्तव में यहां सवाल नहीं है। यदि आपको वास्तव में मदद की ज़रूरत है तो मैं 'UIBarButtonItem' और' UIToolbar' के लिए दस्तावेज़ पढ़ने का सुझाव देता हूं और यदि आप अभी भी अटक गए हैं, तो एक और प्रश्न पूछें। – mattjgalloway

+0

@mattjgalloway मैं इस तरह से करता हूं, लेकिन 'resignFirstResponder' को कॉल करना कस्टम इनपुट व्यू कीबोर्ड को – onmyway133

0

मैंने ऐसा ही किया है जहां मैंने एक बटन और UIDatePicker के साथ एक दृश्य बनाया है, फिर अकेले UIDatePicker के बजाय दृश्य प्रस्तुत किया। फिर बटन सिर्फ IBAction से जुड़ा हुआ है जो दृश्य को बाहर ले जाता है।

इस तरह, बटन UIDatePicker दृश्य के साथ चलता है और वे उपयोगकर्ता से "कनेक्ट" दिखते हैं। आप अपने निब में इस UIView को भी परिभाषित कर सकते हैं और रनटाइम पर addSubview: का उपयोग कर सकते हैं।

2

एक UIView (अर्थात् customDatePickerView) बनाएं और उस दृश्य में, डेटपिकर और एक पूर्ण बटन बनाएं और xib में एक रद्द करें बटन बनाएं। पाठ फ़ील्ड प्रतिनिधि में:

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

    } 

}//dismisses keyboard 

पर तिथि चयनकर्ता मूल्य समारोह बदल दिया

- (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; 
} 

आशा यह आप में मदद मिलेगी।

0

आप जोड़ने इस

[self.view endEditing:YES]; 

इस जोड़े जहां दिनांक पिकर खारिज करना चाहते की तरह मैं टैप जेस्चर पर इस जोड़ लिया है के द्वारा इस का समाधान कर सकते
viewDidLoad पर एक Tapgesture

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

के बाद जोड़ा इसे viewdidLoad पर जोड़ना इशारा पहचानकर्ता का पता लगाने के लिए इस विधि को जोड़ें

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