Objective-Cで、UITextFieldをクリックしたらDatePickerが表示されるサンプルです。ちょっと試行錯誤しましたが、でき上がるとかなりシンプルなソースです!
(8-13 10:40) 完了ボタンを追加しました!
😼 サンプル
🎉 ヘッダファイル
ヘッダファイルにUITextFieldDelegate
を追加。
@interface ViewController : UIViewController @end
|
😀 実装ファイル
実装ファイルのサンプルは以下のとおり。
- (void)viewDidLoad { [super viewDidLoad];
// UITextFieldの設定 CGRect rectBIR = CGRectMake(10, 345, 300, 25); UITextField textField = [[UITextField alloc]initWithFrame:rectBIR];
// DatePickerの設定 UIDatePicker* datePicker = [[UIDatePicker alloc]init]; [datePicker setDatePickerMode:UIDatePickerModeDate];
// DatePickerを編集したら、updateTextFieldを呼び出す [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
// textFieldの入力をdatePickerに設定 textField.inputView = datePicker;
// Delegationの設定 textField.delegate = self;
// DoneボタンとそのViewの作成 UIToolbar* keyboardDoneButtonView = [[UIToolbar alloc] init]; keyboardDoneButtonView.barStyle = UIBarStyleBlack; keyboardDoneButtonView.translucent = YES; keyboardDoneButtonView.tintColor = nil; [keyboardDoneButtonView sizeToFit];
// 完了ボタンとSpacerの配置 UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithTitle:@"完了" style:UIBarButtonItemStyleBordered target:delegate action:@selector(pickerDoneClicked)]; UIBarButtonItem *spacer1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; [keyboardDoneButtonView setItems:[NSArray arrayWithObjects:spacer, spacer1, doneButton, nil]];
// Viewの配置 textField.inputAccessoryView = keyboardDoneButtonView;
[self.view addSubview:textField]; }
#pragma mark DatePickerの編集が完了したら結果をTextFieldに表示 -(void)updateTextField:(id)sender { UIDatePicker *picker = (UIDatePicker *)sender; textField.text = [NSString stringWithFormat:@"%@", picker.date]; }
#pragma mark datepickerの完了ボタンが押された場合 -(void)pickerDoneClicked { [_birth resignFirstResponder]; _activeField = nil; }
|
🗽 参考リンク
bencoffman.com/blog - iOS, Want a “button” above a UIPicker or Keyboard, inputView, inputAccessoryView
datepicker - Iphone Display Date Picker on TextField click - Stack Overflow
🖥 VULTRおすすめ
「VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。
最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!