2013-07-16 2 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

В текстовом полеFieldShouldBeginEditing вам необходимо установить фрейм в соответствии с вашими потребностями, и вам нужно добавить выбор даты для вашего вида. например

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

удалить после этого.

Смежные вопросы