簡體   English   中英

UIDatePicker事件已更改

[英]UIDatePicker Event Changed

我寫一個簡單的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

誰能幫我?

謝謝。

你的代碼在我的系統上運行正常,但是當在@selector(updateTextFieldDate :)中錯誤輸入方法名稱時,我得到完全相同的錯誤。

我知道,愚蠢的建議,但是你可能在代碼中有拼寫錯誤,即使你在這里展示的東西沒有嗎? 合成中的錯字使得它看起來像你在這里鍵入你的類而不是復制粘貼,所以也許xcode版本在@selector部分有拼寫錯誤?

這是因為你正在合成的textfield屬性editTextDate是錯誤的ediTextDate (意味着缺少t ),所以用** editTextDate **替換它。

並替換您的代碼

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

有了這個 :

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

然后你的代碼將正常工作。

希望它能幫到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM