![](/img/trans.png)
[英]iOS 7 : UITextField inputView issue when set to UIDatePicker
[英]UIDatePicker to set UITextfield text
我有一個UITextField
和一個UIDatePicker
,我想用它們來設置用戶的生日。
我在viewDidLoad
使用以下代碼:
UIDatePicker *datePicker = [[UIDatePicker alloc] init];
birtdayTextField.inputView = datePicker;
但是我有兩個問題。 我在情節UIDatePicker
中的視圖中放置了一個UIDatePicker
。 但它仍然會打開一個新的datepicker
,即使我已經連接*datepicker
到UIDatePicker
。
而且它也不會將datepicker
的信息添加到textfield
。
輸入視圖不起作用。 您可以創建惰性UIDatePicker
:
- (UIDatePicker *)bDatePicker {
if (!_bDatePicker) {
_bDatePicker = [UIDatePicker new];
_bDatePicker.datePickerMode = UIDatePickerModeDate;
[_bDatePicker addTarget:self action:@selector(datePickerDidChangeDate:) forControlEvents:UIControlEventValueChanged];
}
return _bDatePicker;
}
然后像下面這樣設置:
self.birtdayTextField.inputView = self.bDatePicker;
這是回調:
- (void)datePickerDidChangeDate:(UIDatePicker *)sender {
self.birtdayTextField.text = [self.bDateFormatter stringFromDate:sender.date];
}
可能的格式化程序:
- (NSDateFormatter *)bDateFormatter {
if (!_bDateFormatter) {
_bDateFormatter = [NSDateFormatter new];
_bDateFormatter.dateFormat = @"dd.MM.yyyy";
}
return _bDateFormatter;
}
為了防止將錯誤的數據粘貼到該文本字段,您可以使用它的delegate
:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
return textField != self.birtdayTextField;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.