UIDatePicker事件已更改

时间:2013-05-09 17:18:03

标签: ios objective-c uidatepicker

我只是为了学习而编写一个简单的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

任何人都可以帮助我吗?

感谢。

2 个答案:

答案 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;

然后您的代码将正常运行。

希望它对你有所帮助。