tableViewCell
에서 dateTextField
을 누르면 datePicker
이 표시됩니다.
datePicker
에서 날짜를 선택하십시오.
그러나 은 datePicker.date
을 표시하지 않습니다.UITextField가 datePicker.date를 inputview로 표시하지 않습니다.
어떻게 수정합니까?
다음 코드가 있습니다.
tableViewController.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString* CellIdentifier = @"Cell";
tableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
{
cell = [[tableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSDateFormatter* outputFormatter = [[NSDateFormatter alloc]init];
[outputFormatter setDateFormat:@"HH:mm"];
NSString* dateString = [outputFormatter stringFromDate:cell.datePicker.date];
cell.dateTextField.text = dateString;
[cell.contentView addSubview:self.dateTextField];
return cell;
}
tableViewCell.m
@property (nonatomic, retain) UITextField* dateTextField;
@property (nonatomic, retain) UIDatePicker* datePicker;
@property (nonatomic, retain) UIToolbar* toolBar;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self.datePicker = [[UIDatePicker alloc]init];
self.datePicker.datePickerMode = UIDatePickerModeTime;
self.toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, -40, 320, 40)];
self.toolBar.barStyle = UIBarStyleBlackOpaque;
UIBarButtonItem* doneButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(textFieldShouldReturn:)];
NSArray* barItems = [NSArray arrayWithObjects:doneButton, nil];
[self.toolBar setItems:barItems animated:YES];
self.dateTextField = [[UITextField alloc]initWithFrame:CGRectMake(90, 5, 100, 25)];
self.dateTextField.delegate = self;
self.dateTextField.inputView = self.datePicker;
self.dateTextField.inputAccessoryView = self.toolBar;
[self.contentView addSubview:self.dateTextField];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[self.dateTextField resignFirstResponder];
return YES;
}
감사합니다.