如果我有这样的设置:
- (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 是哪个 textField 的 inputView 吗?这听起来令人困惑,但就像这样:
- (void) showDate: (UIDatePicker*) myDatePicker {
NSDate* selected = [myDatePicker date];
NSString* date = [selected description];
myTextField = myDatePicker.view //I know this is not a property
}
有点像 UITapGestureRecognizer 知道什么视图在调用它......
对 Woz 的解释:我可以,但它会降低应用程序的动态性。这是安装医疗设备的大形式。为了创建表单,我将所有元素属性存储在字典中(标签、类型(文本、复选框、分段控件)、表单部分等),然后以正确的顺序将每个字典存储在数组中。我在数组循环中以编程方式构建所有内容。我想我可以继承 UITextField ......但你必须承认很高兴知道哪个文本字段启动了 inputView