2013-05-09 49 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