J M*_*Max 2 uitextfield ios resignfirstresponder
当选择textField时,我想显示一个弹出窗口,而不是显示键盘(我的代码位于底部).如果键盘没有显示,那么一切都很好.但是,如果键盘显示然后选择了文本字段,键盘就不会被解雇,某个地方的第一个响应者必须迷路但我不知道在哪里.有人有解决方案吗?
我的文字字段:
self.startDateTextField = [[UITextField alloc] initWithFrame:CGRectMake(79, 148, 138, 27)];
[self.startDateTextField setBorderStyle:UITextBorderStyleRoundedRect];
[self.startDateTextField setDelegate:delegate];
[self.startDateTextField addTarget:delegate action:@selector(editStartDate:) forControlEvents:UIControlEventEditingDidBegin];
[popoverWrapper addSubview:self.startDateTextField];
Run Code Online (Sandbox Code Playgroud)
在editStartDate:我有:
-(void)editStartDate:(UITextField *)textField {
[textField resignFirstResponder];
DatePickerVC *datePickerVC = [[DatePickerVC alloc] init];
datePickerVC.delegate = self;
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:datePickerVC];
[self.popoverController setDelegate:self];
[self.popoverController presentPopoverFromRect:CGRectMake(0, 0, 5, 5) inView:textField permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
agi*_*ion 10
这很容易做到,使用你的UITextFieldDelegate方法特别是UITextFieldShouldBeginEditing并返回NO并执行代码来显示popover.这样,键盘永远不会显示开始.
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[self.view endEditing:YES]; // added this in for case when keyboard was already on screen
[self editStartDate:textField];
return NO;
}
Run Code Online (Sandbox Code Playgroud)
要使它工作,请确保将textField的委托设置为self(视图控制器),并在editStartDate方法中删除resignFirstResponder调用.
| 归档时间: |
|
| 查看次数: |
6454 次 |
| 最近记录: |