0
正如你可以從我瞭解的問題,我不能得到的UITextField(其中2有inputView作爲的UIDatePicker,1是正常的)改變挑文本到在UIDatePicker(XIB文件)中選取的日期。 到目前爲止,我設法在點擊textfield時顯示datePicker(並在點擊視圖時將其刪除,但我無法獲取textField將其文本更改爲選擇的日期UIDatePicker。 這裏是我的.m文件:
改變文本框輸入的日期在的UIDatePicker(當值改變了)
#import "ViewController.h"
#define kNIBname @"MyDatePickerView"
@interface ViewController()<UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *myTF;
@property (weak, nonatomic) IBOutlet UITextField *myOtherTF;
@property (nonatomic, strong) UIView *myDatePickerView;
@property (nonatomic,strong) UIDatePicker *MyDatePicker;
@end
@implementation ViewController
@synthesize myTF,myOtherTF,MyDatePicker,myDatePickerView;
- (void)viewDidLoad{
[super viewDidLoad];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dropPicker:)];
[self.view addGestureRecognizer:tap];
[self datePickerValueChanged:MyDatePicker];
MyDatePicker = [[myDatePickerView subviews] lastObject];
[MyDatePicker setDatePickerMode: UIDatePickerModeDate];
[MyDatePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
[myTF setInputView:myDatePickerView];
[myOtherTF setInputView:myDatePickerView];
// Do any additional setup after loading the view, typically from a nib.
}
-(IBAction)dropPicker:(id)sender{
[myDatePickerView removeFromSuperview];
[self.view endEditing:YES];
}
- (void) loadDatePickerView{
UINib *nib = [UINib nibWithNibName:kNIBname bundle:[NSBundle mainBundle]];
NSArray *views = [nib instantiateWithOwner:self options:nil];
self.myDatePickerView = [views firstObject];
[myDatePickerView setFrame:CGRectMake(0, 318, 320, 162)];
[self.view addSubview:myDatePickerView];
}
-(IBAction)datePickerValueChanged:(UIDatePicker *)sender{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:sender.locale];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
}
-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField{
if(textField == myTF || textField == myOtherTF){
[self loadDatePickerView];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setLocale:[MyDatePicker locale]];
[df setDateStyle:NSDateFormatterMediumStyle];
[self datePickerValueChanged:MyDatePicker];
[textField setText:[df stringFromDate:[MyDatePicker date]]];
return NO;
} else {
return YES;
}
}
@end
但是我怎麼知道哪些文本框是活動的,我還有其他TEX顯示常規鍵盤的tfields。 – iOSMaster