uidatepicker を使用して日付入力を取得したい。UITextField の入力ビューを UIDatePicker オブジェクトに変更しました。DatePicker は表示されていますが、問題ありません。しかし、ユーザーが日付ピッカーの外側をタップすると、日付ピッカーが非表示になるように、UITapGestureRecognizer を追加しました。ここで例外が発生します。日付ピッカーを非表示にできません。
インターフェイス ファイル:
@interface ViewController : UIViewController <UITextFieldDelegate>
{
UIDatePicker *anewPicker;
UITapGestureRecognizer *tapGestureRecognizer;
}
@property (weak, nonatomic) IBOutlet UILabel *labelOutlet;
@property (weak, nonatomic) IBOutlet UITextField *startTimeTxtOutlet;
@property (weak, nonatomic) IBOutlet UITextField *endTimeTxtOutlet;
@property UIDatePicker *anewPicker;
@property UITapGestureRecognizer *tapGestureRecognizer;
@end
実装ファイル:
@implementation ViewController
@synthesize anewPicker;
@synthesize tapGestureRecognizer;
- (void)viewDidLoad
{
[super viewDidLoad];
self.anewPicker = [[UIDatePicker alloc] initWithFrame:[self.view bounds]];
[anewPicker addTarget:self action:@selector(enteredStartDate:) forControlEvents:UIControlEventValueChanged];
self.startTimeTxtOutlet.inputView = self.anewPicker;
self.endTimeTxtOutlet.inputView = self.anewPicker;
self.tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self.view action:@selector(dismissDatePicker:)];
self.tapGestureRecognizer.numberOfTapsRequired = 1;
[self.view addGestureRecognizer:self.tapGestureRecognizer];
}
-(void)enteredStartDate:(id)sender
{
NSLog(@"start date %@",[sender date]);
}
-(void)enteredEndDate:(id)sender
{
NSLog(@"end date %@",[sender date]);
}
-(void)dismissDatePicker:(UIGestureRecognizer*)gestureRecognizer
{
//in this function i get the exception
//other functions are ok
NSLog(@"tap");
self.anewPicker.hidden = YES;
}
@end
例外:認識されないセレクターがインスタンスに送信されました
プラットフォームの詳細:
X コード 4.5.2
展開ターゲット: 6.0
ベース SDK: 6.0