2013-07-16 279 views
2

對於我的應用程序,我試圖讓一個UIDatePicker出現在單擊時間的文本框中。無法隱藏UIDatePicker

在我viewDidLoad中,我初始化這樣的:

- (void)viewDidLoad { 

time.delegate = self; 
[time setValue:[UIColor darkGrayColor] forKeyPath:@"_placeholderLabel.textColor"]; 

datepicker = [[UIDatePicker alloc] init]; 
datepicker.datePickerMode = UIDatePickerModeCountDownTimer; 
dateformatter= [[NSDateFormatter alloc] init]; 
[dateformatter setDateFormat:@"HH:mm:ss"]; 

} 

然後,在textFieldShouldBeginEditing方法,我有這樣的:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 

if (textField == time){ 
    button.hidden = NO; 
    datepicker.hidden = NO; 

} 

    return NO; 
} 

然而,我的UIDatePicker仍保持隱藏,我確保插座已連接

+1

你在哪裏添加選擇器作爲視圖中的子視圖? – giorashc

+0

選擇器放在.xib中? – Balu

+0

如果他初始化他的日期選擇器,那麼IBOutlet是無關緊要的 – giorashc

回答

3

從您的代碼中刪除此行並檢查,如果您的選擇器被放置在Xib中。

datepicker = [[UIDatePicker alloc] init]; 
+0

謝謝!我不能相信我沒有注意到... – Alexyuiop

+0

你的歡迎親愛的伴侶。 – Balu

0

在textFieldShouldBeginEditing中,您需要根據需要設置框架,而不是必須將日期選擇器添加到視圖中。例如

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 

    if (textField == _time){ 

     CGRect frame = datepicker.frame; 
     frame.origin.x = 100(for eg,set according to you); 
     frame.origin.y = 100(for eg,set according to you); 
     datepicker.frame = frame; 
     [self.view addSubview:datepicker]; 
     button.hidden = NO; 
     datepicker.hidden = NO; 

    } 

    return NO; 
} 

在完成此操作後刪除。