1

我写了一个简单的 iOS 应用程序只是为了学习,在我的情况下我需要使用 aUIDatePicker并且,在用户更改日期后,我需要将此日期写入 a 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

谁能帮我?

谢谢。

4

2 回答 2

2

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

我知道,愚蠢的建议,但是您是否可能在代码中有错字,即使您在此处显示的内容没有?synthesize 中的拼写错误使您看起来像是在这里键入了您的课程而不是复制粘贴,所以也许 xcode 版本在@selector 部分有拼写错误?

于 2013-05-09T18:55:41.530 回答
1

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

并替换您的代码

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

有了这个 :

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

然后您的代码将正常工作。

希望它可以帮助你。

于 2013-05-09T17:52:08.487 回答