2013-05-09 34 views
1

我写一个简单的iOS应用只是为了学习,在我来说,我需要使用一个UIDatePicker和,之后用户更改日期,我必须在这一天写入一个UITextField,下面的代码:的UIDatePicker事件改变

.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

备注 - 没有理由在.h文件中声明'updateTextFieldDate:'。 – rmaddy 2013-05-09 17:58:07

回答

2

你的代码在我的系统上运行良好,但在@selector(updateTextFieldDate :)中忘记了方法名称时,我得到了完全相同的错误。

我知道,愚蠢的建议,但它有可能在代码中有错字,即使你在这里显示的东西没有它吗?合成中的拼写错误让你看起来像在这里键入你的类而不是复制粘贴,所以或许xcode版本在@selector部分中有一个错字?

+0

你是对的....我有错误的代码....当我看到代码更多的类型我看到我在做什么....在Xcode上的代码是:[datePicker addTarget:self action:@选择器(upadteTextFieldDate :) forControlEvents:UIControlEventValueChanged]; ------------------但是正确的是[datePicker addTarget:self action:@selector(updateTextFieldDate :) forControlEvents:UIControlEventValueChanged]; ----选择器名称不正确......对不起......球员...... – 2013-05-09 19:20:12

1

这是因为您正在合成的textfield属性editTextDate错误为ediTextDate(意味着t丢失),因此请将其替换为** editTextDate **。

并更换代码

UIDatePicker *picker=(UIDatePicker*)self.editTextdate.inputView; // wrong editTextdate , it is editTextDate 

与此:

UIDatePicker *picker=(UIDatePicker*)self.editTextDate.inputView; 

那么你的代码将正常工作。

希望它可以帮助你。

+2

这与错误消息无关。 – rmaddy 2013-05-09 17:57:34