2011-01-23 13 views
34

आप यह कैसे करेंगे?कीबोर्ड की बजाय आईफोन डेटपिकर?

मेरे पास UITextField के साथ एक फॉर्म है। जब मैं इसमें क्लिक करता हूं तो मैं डिफ़ॉल्ट कीबोर्ड के बजाय एक यूआईडीएटीपीकर प्रदर्शित करना चाहता हूं जो डिफ़ॉल्ट रूप से पॉप-अप करता है? ध्यान दें कि मेरे रूप में अन्य तत्व भी हैं।

+0

UITextField के बजाय UIDatePicker का उपयोग क्यों नहीं करें? –

+0

कस्टम डिजाइन ... – xpepermint

+0

क्या आपके पास इसके लिए कोड है? मुझे एक ही समस्या का सामना करना पड़ रहा है साथ ही – aherlambang

उत्तर

85

मुझे लगता है कि यह यह करने के लिए एक और अधिक सरकारी तरीका है: ज

UIDatePicker *datePicker; 
NSDate *date; 
UIToolbar *keyboardToolbar; 
viewDidLoad में

में

UIDatePicker *datePicker = [[[UIDatePicker alloc] init] autorelease]; 
datePicker.datePickerMode = UIDatePickerModeDate; 
[datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged]; 
datePicker.tag = indexPath.row; 
textField.inputView = datePicker; 
+0

यह आईओएस 5 में मेरे लिए काम नहीं कर रहा है। टेक्स्ट फ़ील्ड अभी भी क्लिक होने पर सामान्य कीबोर्ड प्रस्तुत करता है। TextField.inputView को वैध पॉइंटर के साथ सेट करने के बाद और उसके बाद तुरंत जांच कर, यह वापस शून्य हो गया है। किसी के पास कोई विचार क्यों है? मैं इसे डीडलोड में देख रहा हूं। – Oscar

+2

जांचें और देखें कि क्या आपका "डेटपिकर" ivar शून्य नहीं है – NSExplorer

+3

यह पूरी तरह से ठीक काम कर रहा है, लेकिन तिथि चुनने के बाद दिनांक पिकर को कैसे छिपाना है – Noor

8

: स्टोरीबोर्ड में

if (keyboardToolbar == nil) { 
    keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)]; 
    [keyboardToolbar setBarStyle:UIBarStyleBlackTranslucent]; 

    UIBarButtonItem *extraSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

    UIBarButtonItem *accept = [[UIBarButtonItem alloc] initWithTitle:@"Accept" style:UIBarButtonItemStyleDone target:self action:@selector(closeKeyboard:)]; 

    [keyboardToolbar setItems:[[NSArray alloc] initWithObjects: extraSpace, accept, nil]]; 
} 

self.txtDate.inputAccessoryView = keyboardToolbar; 

datePicker = [[UIDatePicker alloc] init]; 
datePicker.datePickerMode = UIDatePickerModeDate; 
[datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged]; 

self.txtDate.inputView = datePicker; 


- (void)datePickerValueChanged:(id)sender{ 

date = datePicker.date; 

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"dd/MM/YYYY"]; 


[self.txtDate setText:[df stringFromDate:date]]; 
} 

txtDate के लिए जोड़ -> संपादन DidEnd

- (IBAction)establishHour:(id)sender{ 

hour = hourPicker.date; 

NSDateFormatter *hf = [[NSDateFormatter alloc] init]; 
[hf setDateFormat:@"HH:MM"]; 

[self.txtHour setText:[hf stringFromDate:hour]]; 

} 

कुंजीपटल को डेटपिकर के रूप में सेट करता है और चयन को स्वीकार करने के लिए बटन के साथ टूलबार बनाया जाता है।

+2

अपनी पोस्ट की गुणवत्ता में सुधार करने के लिए, कृपया यह कोड कैसे हल करें/क्यों समस्या हल करेगा। –

+0

सीररटेक्लोडो क्या है? – lolol

+1

- (शून्य) cerrarTeclado: (आईडी) प्रेषक { [self.txtFecha इस्तीफा फर्स्ट रेस्पॉन्डर]; } –

0
(IBAction)estableceHora:(id)sender{ 
    Hora = horaPicker.date; 
    NSDateFormatter *hf = [[NSDateFormatter alloc] init]; 
    [hf setDateFormat:@"HH:MM"]; 
    [self.txtHora setText:[hf stringFromDate:Hora]]; 
} 
-1

ज फाइलों में जोड़ा गया:

UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> 

मीटर फाइलों में जोड़ा गया:

{ 

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 

df.dateStyle = NSDateFormatterMediumStyle; 

pTxtDate.text = [NSString stringWithFormat:@"%@", 

[df stringFromDate:[NSDate date]]]; 

NSLog(@"pTxtDate.text %@",pTxtDate.text); 

[df release]; 

[self.view addSubview:pTxtDate]; 

[pTxtDate release]; 

DatePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 325, 300)]; 

DatePicker.datePickerMode = UIDatePickerModeDate; 

DatePicker.hidden = NO; 

DatePicker.date = [NSDate date]; 

[DatePicker addTarget:self 

    action:@selector(LabelChange:) 

forControlEvents:UIControlEventValueChanged]; 

[self.view addSubview:DatePicker]; 

    [DatePicker release]; 

} 



- (void)LabelChange:(id)sender { 

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 

df.dateStyle = NSDateFormatterMediumStyle; 

pTxtDate.text = [NSString stringWithFormat:@"%@", 

[df stringFromDate:DatePicker.date]]; 

} 
3

मैं तेजी में जोहान कूल के जवाब परिवर्तित कर दिया है, तो किसी को भी चाहते हैं यह। मैंने कोड को डीडलोड में देखा।

let datePicker = UIDatePicker() 
datePicker.datePickerMode = UIDatePickerMode.Date 
datePicker.addTarget(self, action: "datePickerValueChanged:", forControlEvents: UIControlEvents.ValueChanged) 
textField.inputView = datePicker