私がそのように設定している場合:
- (void)textFieldDidBeginEditing:(UITextField* )textField {
if (textField.tag == 603) {
datePicker = [[UIDatePicker alloc]init];
[datePicker setDatePickerMode:UIDatePickerModeDate];
[datePicker setDate:[NSDate date]];
[datePicker addTarget:self action:@selector(showDate:) forControlEvents:UIControlEventValueChanged];
textField.inputView = datePicker;
}
}
setDate メソッドで、UIPickerDate が inputView である textField を参照できますか? ややこしいですが、こんな感じです。
- (void) showDate: (UIDatePicker*) myDatePicker {
NSDate* selected = [myDatePicker date];
NSString* date = [selected description];
myTextField = myDatePicker.view //I know this is not a property
}
UITapGestureRecognizer がそれを呼び出しているビューを知っているのと同じ意味で...
ウォズの説明: できますが、アプリの動的性が低下します。これは、医療機器の設置用の大きなフォームです。フォームを作成するには、要素のすべてのプロパティをディクショナリ (ラベル、タイプ (テキスト、チェックボックス、セグメント化されたコントロール)、フォーム セクションなど) に格納し、各ディクテーションを適切な順序で配列に格納します。配列ループ中にプログラムですべてをビルドします。私はUITextFieldをサブクラス化できると思います...しかし、どのテキストフィールドがinputViewを開始したかを知ることは素晴らしいことだと認めなければなりません