我有一个表格,我需要输入开始日期和结束日期才能查看交易。 当我将焦点设置在textfirld上时,我可以看到键盘,但在它后面会出现日期选择器。 我如何删除键盘并仅显示日期选择器
答案 0 :(得分:3)
我自己也在努力,找到了解决方案。你可以这样做:
- (void)viewDidLoad
{
[super viewDidLoad];
// set delegate for date text field
dateField.delegate = self;
}
// Display the picker instead of a keyboard
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
[self showDatePicker];
return NO;
}
这假设您已经声明了一个名为showDatePicker的方法,该方法处理UIPicker显示。
答案 1 :(得分:2)
听起来不是标准的键盘,而是想要显示自己的日期选择器视图。我相信您可以通过设置文本域的委托然后提供来处理 textFieldShouldBeginEditing。
//在viewWillAppear中设置文本字段委托(如果需要)
...
myTextField.delegate = self;
...
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
// if date picker not in display, show it here...
return NO;
}
答案 2 :(得分:1)
您可以通过某些按钮单击方法调用[myTextField resignFirsrResponder],例如,在textFieldShouldReturn委托方法中调用[myTextField resignFirsrResponder]。喜欢这样的
- (BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES; }
答案 3 :(得分:1)
答案 4 :(得分:0)
很简单,在viewController.h中放置UITextFieldDelegate。在viewDidLoad之后。
txtFecha.delegate = self;
datePicker = [[UIDatePicker alloc]init];
[datePicker setDatePickerMode:UIDatePickerModeDate];
self.txtFecha.inputView = datePicker;
答案 5 :(得分:0)
现在您可以使用UITextField的 inputView 和 inputAccessoryView 。 在.h文件中声明,在.m文件中声明@synthesize。
@property (nonatomic, retain) IBOutlet UIToolbar *_accessoryView;
@property (nonatomic, retain) IBOutlet UIDatePicker *_datePickerView;
将它们连接到.xib文件中的文件所有者,确保它不在self.view中。
- (void)viewDidLoad
{
_dateOfBirthTextField.inputView = self._datePickerView;
_dateOfBirthTextField.inputAccessoryView = self._toolbar;
}
还要编写函数以从选择器中获取日期
#pragma mark- UITextField with UIDatePicker-
- (IBAction)dateChanged:(id)sender {
UIDatePicker *picker = (UIDatePicker *)sender;
_dateOfBirthTextField.text = [NSString stringWithFormat:@"%@", picker.date];
}
- (IBAction)doneEditing:(id)sender {
[_dateOfBirthTextField resignFirstResponder];
}
在valueChanged上添加dateChanged:IBAction:_datePicker的动作。 和doneEditing:工具栏按钮操作上的IBAction。