我实现了一个视图,其中有两个文本字段。在第一个文本字段中,当用户单击它时,会显示选择器视图。当用户点击其他文本字段键盘时显示。但是当用户从第二个文本字段转到第一个文本字段时,它仍然显示键盘,并且在该键盘的背面有一个选择器视图。当用户从第二个文本字段移动到第一个文本字段而不按键盘完成按钮时,我无法重新键入此键盘。
-(void)textFieldDidBeginEditing:(UITextField *)myTextField
{
if(myTextField == firsttextfield)
{
[firsttextfield resignFirstResponder];
medicationtypepicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0,190,320,215)];
medicinetypearray = [[NSMutableArray alloc]initWithObjects:@"Capsules",@"Eyedrops",
@"Eardrops",@"Nosedrops",@"Inhaler",@"Syrup",@"Injections",@"Oils",@"Ointment", nil];
medicationtypepicker.delegate = self;
medicationtypepicker.showsSelectionIndicator = YES;
medicationtypepicker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.view addSubview:medicationtypepicker];
}
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[secondtextfield resignFirstResponder];
return YES;
}
如果有人想要解雇键盘。请提供解决方案。
非常感谢。
答案 0 :(得分:3)
对于您的问题,正确的解决方案是将第一个文本字段的inputView
属性设置为选择器视图。
让视图控制器在显示“药物详细信息”屏幕时创建和配置选择器,并将该选择器分配给第一个文本字段inputView
。然后,当用户从一个字段移动到另一个字段时,键盘或选择器将自动显示,而您不必愚弄第一响应者,等等。
答案 1 :(得分:1)
确定secondTextField
处于有效状态后,请尝试告诉resignFirstResponder
firstTextField
:
-(void)textFieldDidBeginEditing:(UITextField *)myTextField
{
if(myTextField == firsttextfield)
{
[firsttextfield resignFirstResponder];
[secondtextfield resignFirstResponder];
medicationtypepicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0,190,320,215)];
....
}
}
答案 2 :(得分:0)
查看您的文字字段的属性"结束时退出"与“文件所有者”相关联proerly。然后使用;
- (void)textFieldDidBeginEditing:(UITextField *)myTextField
{
if(myTextField == firsttextfield)
{
...
[secondtextfield resignFirstResponder];
.....
}
}