我只是为了学习而编写一个简单的iOS应用程序,在我的情况下我需要使用UIDatePicker
,并且在用户更改日期之后,我需要将此日期写入UITextField
,这里是代码:
.h文件
@interface ExpenseViewController: UIViewController<UITextFieldDelegate>
@property (strong,nonatomic) IBOutlet UITextField *editTextDate;
- (void) updateTextFieldDate:(UIDatePicker *)pickerL;
@end
的.m
@implementation ExpenseViewController
@synthesize ediTextDate;
- (void) viewDidLoad
{
[super viewDidLoad]
UIDatePicker *datePicker;
datePicker = [[UIDatePicker alloc]init];
[datePicker setDate:[NSDate date]];
[datePicker setDatePickerMode:UIDatePickerModeDate];
[datePicker removeTarget:self action:nil forControlEvents:UIControlEventValueChanged];
[datePicker addTarget:self action:@selector(updateTextFieldDate:) forControlEvents:UIControlEventValueChanged];
[editTextDate setInputView:datePicker];
}
- (void) updateTextFieldDate:(UIDatePicker *)pickerL{
UIDatePicker *picker=(UIDatePicker*)self.editTextdate.inputView;
editTextDate.text=[NSString stringWithFormat:@"%@",picker.date];
}
@end
但是我收到了这个错误:
ExpenseViewController updateTextFieldDate:]:unrecognized selector sent to instance 0x8d395f0
任何人都可以帮助我吗?
感谢。
答案 0 :(得分:2)
您的代码在我的系统上正常运行,但是在@selector(updateTextFieldDate :)中错误输入方法名称时,我收到完全相同的错误。
我知道,愚蠢的建议,但你可能在代码中有错字,即使你在这里展示的东西没有吗?合成中的错字使得它看起来像你在这里键入你的类而不是复制粘贴,所以也许xcode版本在@selector部分有一个拼写错误?
答案 1 :(得分:1)
这是因为您正在合成的文本字段属性editTextDate
错误为ediTextDate
(意味着 t 缺失),因此请将其替换为** editTextDate **。
并替换您的代码
UIDatePicker *picker=(UIDatePicker*)self.editTextdate.inputView; // wrong editTextdate , it is editTextDate
用这个:
UIDatePicker *picker=(UIDatePicker*)self.editTextDate.inputView;
然后您的代码将正常运行。
希望它对你有所帮助。